diff options
author | Johannes Obermayr <johannesobermayr@gmx.de> | 2013-08-20 20:14:00 +0200 |
---|---|---|
committer | Christoph Bumiller <e0425955@student.tuwien.ac.at> | 2013-09-11 21:47:07 +0200 |
commit | 5eb7ff1175a644ffe3b0f1a75cb235400355f9fb (patch) | |
tree | 613342591e12a96725df715853a5e579ba1ec8ea /src/gallium/drivers/nv50/nv50_resource.c | |
parent | ebcdaa7bbc3a10fe59447ae77b508ee85eaa582f (diff) | |
download | external_mesa3d-5eb7ff1175a644ffe3b0f1a75cb235400355f9fb.zip external_mesa3d-5eb7ff1175a644ffe3b0f1a75cb235400355f9fb.tar.gz external_mesa3d-5eb7ff1175a644ffe3b0f1a75cb235400355f9fb.tar.bz2 |
Move nv30, nv50 and nvc0 to nouveau.
It is planned to ship openSUSE 13.1 with -shared libs.
nouveau.la, nv30.la, nv50.la and nvc0.la are currently LIBADDs in all nouveau
related targets.
This change makes it possible to easily build one shared libnouveau.so which is
then LIBADDed.
Also dlopen will be faster for one library instead of three and build time on
-jX will be reduced.
Whitespace fixes were requested by 'git am'.
Signed-off-by: Johannes Obermayr <johannesobermayr@gmx.de>
Acked-by: Christoph Bumiller <christoph.bumiller@speed.at>
Acked-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'src/gallium/drivers/nv50/nv50_resource.c')
-rw-r--r-- | src/gallium/drivers/nv50/nv50_resource.c | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/src/gallium/drivers/nv50/nv50_resource.c b/src/gallium/drivers/nv50/nv50_resource.c deleted file mode 100644 index 43c6998..0000000 --- a/src/gallium/drivers/nv50/nv50_resource.c +++ /dev/null @@ -1,104 +0,0 @@ - -#include "pipe/p_context.h" -#include "util/u_inlines.h" -#include "util/u_format.h" - -#include "nouveau/nouveau_screen.h" - -#include "nv50_resource.h" - -static struct pipe_resource * -nv50_resource_create(struct pipe_screen *screen, - const struct pipe_resource *templ) -{ - switch (templ->target) { - case PIPE_BUFFER: - return nouveau_buffer_create(screen, templ); - default: - return nv50_miptree_create(screen, templ); - } -} - -static struct pipe_resource * -nv50_resource_from_handle(struct pipe_screen * screen, - const struct pipe_resource *templ, - struct winsys_handle *whandle) -{ - if (templ->target == PIPE_BUFFER) - return NULL; - else - return nv50_miptree_from_handle(screen, templ, whandle); -} - -struct pipe_surface * -nv50_surface_from_buffer(struct pipe_context *pipe, - struct pipe_resource *pbuf, - const struct pipe_surface *templ) -{ - struct nv50_surface *sf = CALLOC_STRUCT(nv50_surface); - if (!sf) - return NULL; - - pipe_reference_init(&sf->base.reference, 1); - pipe_resource_reference(&sf->base.texture, pbuf); - - sf->base.format = templ->format; - sf->base.writable = templ->writable; - sf->base.u.buf.first_element = templ->u.buf.first_element; - sf->base.u.buf.last_element = templ->u.buf.last_element; - - sf->offset = - templ->u.buf.first_element * util_format_get_blocksize(sf->base.format); - - sf->offset &= ~0x7f; /* FIXME: RT_ADDRESS requires 128 byte alignment */ - - sf->width = templ->u.buf.last_element - templ->u.buf.first_element + 1; - sf->height = 1; - sf->depth = 1; - - sf->base.width = sf->width; - sf->base.height = sf->height; - - sf->base.context = pipe; - return &sf->base; -} - -static struct pipe_surface * -nv50_surface_create(struct pipe_context *pipe, - struct pipe_resource *pres, - const struct pipe_surface *templ) -{ - if (unlikely(pres->target == PIPE_BUFFER)) - return nv50_surface_from_buffer(pipe, pres, templ); - return nv50_miptree_surface_new(pipe, pres, templ); -} - -void -nv50_surface_destroy(struct pipe_context *pipe, struct pipe_surface *ps) -{ - struct nv50_surface *s = nv50_surface(ps); - - pipe_resource_reference(&ps->texture, NULL); - - FREE(s); -} - -void -nv50_init_resource_functions(struct pipe_context *pcontext) -{ - pcontext->transfer_map = u_transfer_map_vtbl; - pcontext->transfer_flush_region = u_transfer_flush_region_vtbl; - pcontext->transfer_unmap = u_transfer_unmap_vtbl; - pcontext->transfer_inline_write = u_transfer_inline_write_vtbl; - pcontext->create_surface = nv50_surface_create; - pcontext->surface_destroy = nv50_surface_destroy; -} - -void -nv50_screen_init_resource_functions(struct pipe_screen *pscreen) -{ - pscreen->resource_create = nv50_resource_create; - pscreen->resource_from_handle = nv50_resource_from_handle; - pscreen->resource_get_handle = u_resource_get_handle_vtbl; - pscreen->resource_destroy = u_resource_destroy_vtbl; -} |