From b496136af84e396e7890082817b563dc53ac36fc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sat, 12 May 2012 13:08:02 +0200 Subject: [PATCH] gallium: remove user_buffer_create from the interface Nothing uses it now. --- src/gallium/auxiliary/util/u_inlines.h | 8 ----- src/gallium/auxiliary/util/u_slab.h | 2 +- src/gallium/drivers/galahad/glhd_screen.c | 23 --------------- src/gallium/drivers/i915/i915_resource.c | 1 - src/gallium/drivers/identity/id_screen.c | 23 --------------- src/gallium/drivers/llvmpipe/lp_texture.c | 2 -- src/gallium/drivers/noop/noop_pipe.c | 18 ------------ src/gallium/drivers/nv30/nv30_resource.c | 1 - src/gallium/drivers/nv50/nv50_resource.c | 1 - src/gallium/drivers/nvc0/nvc0_resource.c | 1 - src/gallium/drivers/r600/r600_buffer.c | 25 ---------------- src/gallium/drivers/r600/r600_pipe.h | 3 -- src/gallium/drivers/r600/r600_resource.c | 1 - src/gallium/drivers/radeonsi/r600_buffer.c | 25 ---------------- src/gallium/drivers/radeonsi/r600_resource.c | 1 - src/gallium/drivers/radeonsi/radeonsi_pipe.h | 3 -- src/gallium/drivers/rbug/rbug_screen.c | 23 --------------- src/gallium/drivers/softpipe/sp_texture.c | 2 -- src/gallium/drivers/svga/svga_resource.c | 1 - src/gallium/drivers/trace/tr_screen.c | 44 ---------------------------- src/gallium/include/pipe/p_screen.h | 26 ---------------- 21 files changed, 1 insertion(+), 233 deletions(-) diff --git a/src/gallium/auxiliary/util/u_inlines.h b/src/gallium/auxiliary/util/u_inlines.h index 2ec1ccf..2ec153c 100644 --- a/src/gallium/auxiliary/util/u_inlines.h +++ b/src/gallium/auxiliary/util/u_inlines.h @@ -233,14 +233,6 @@ pipe_buffer_create( struct pipe_screen *screen, return screen->resource_create(screen, &buffer); } - -static INLINE struct pipe_resource * -pipe_user_buffer_create( struct pipe_screen *screen, void *ptr, unsigned size, - unsigned usage ) -{ - return screen->user_buffer_create(screen, ptr, size, usage); -} - static INLINE void * pipe_buffer_map_range(struct pipe_context *pipe, struct pipe_resource *buffer, diff --git a/src/gallium/auxiliary/util/u_slab.h b/src/gallium/auxiliary/util/u_slab.h index 6b9718d..3ed8b12 100644 --- a/src/gallium/auxiliary/util/u_slab.h +++ b/src/gallium/auxiliary/util/u_slab.h @@ -28,7 +28,7 @@ * Good for allocations which have very low lifetime and are allocated * and freed very often. Use a profiler first to know if it's worth using it! * - * Candidates: get_transfer, user_buffer_create + * Candidates: get_transfer * * @author Marek Olšák */ diff --git a/src/gallium/drivers/galahad/glhd_screen.c b/src/gallium/drivers/galahad/glhd_screen.c index 49702b6..7d03763 100644 --- a/src/gallium/drivers/galahad/glhd_screen.c +++ b/src/gallium/drivers/galahad/glhd_screen.c @@ -222,28 +222,6 @@ galahad_screen_resource_destroy(struct pipe_screen *screen, } -static struct pipe_resource * -galahad_screen_user_buffer_create(struct pipe_screen *_screen, - void *ptr, - unsigned bytes, - unsigned usage) -{ - struct galahad_screen *glhd_screen = galahad_screen(_screen); - struct pipe_screen *screen = glhd_screen->screen; - struct pipe_resource *result; - - result = screen->user_buffer_create(screen, - ptr, - bytes, - usage); - - if (result) - return galahad_resource_create(glhd_screen, result); - return NULL; -} - - - static void galahad_screen_flush_frontbuffer(struct pipe_screen *_screen, struct pipe_resource *_resource, @@ -323,7 +301,6 @@ galahad_screen_create(struct pipe_screen *screen) glhd_screen->base.resource_from_handle = galahad_screen_resource_from_handle; glhd_screen->base.resource_get_handle = galahad_screen_resource_get_handle; glhd_screen->base.resource_destroy = galahad_screen_resource_destroy; - glhd_screen->base.user_buffer_create = galahad_screen_user_buffer_create; glhd_screen->base.flush_frontbuffer = galahad_screen_flush_frontbuffer; glhd_screen->base.fence_reference = galahad_screen_fence_reference; glhd_screen->base.fence_signalled = galahad_screen_fence_signalled; diff --git a/src/gallium/drivers/i915/i915_resource.c b/src/gallium/drivers/i915/i915_resource.c index b4719af..253c7d0 100644 --- a/src/gallium/drivers/i915/i915_resource.c +++ b/src/gallium/drivers/i915/i915_resource.c @@ -46,5 +46,4 @@ i915_init_screen_resource_functions(struct i915_screen *is) is->base.resource_from_handle = i915_resource_from_handle; is->base.resource_get_handle = u_resource_get_handle_vtbl; is->base.resource_destroy = u_resource_destroy_vtbl; - is->base.user_buffer_create = i915_user_buffer_create; } diff --git a/src/gallium/drivers/identity/id_screen.c b/src/gallium/drivers/identity/id_screen.c index a173235..ab82e29 100644 --- a/src/gallium/drivers/identity/id_screen.c +++ b/src/gallium/drivers/identity/id_screen.c @@ -188,28 +188,6 @@ identity_screen_resource_destroy(struct pipe_screen *screen, } -static struct pipe_resource * -identity_screen_user_buffer_create(struct pipe_screen *_screen, - void *ptr, - unsigned bytes, - unsigned usage) -{ - struct identity_screen *id_screen = identity_screen(_screen); - struct pipe_screen *screen = id_screen->screen; - struct pipe_resource *result; - - result = screen->user_buffer_create(screen, - ptr, - bytes, - usage); - - if (result) - return identity_resource_create(id_screen, result); - return NULL; -} - - - static void identity_screen_flush_frontbuffer(struct pipe_screen *_screen, struct pipe_resource *_resource, @@ -286,7 +264,6 @@ identity_screen_create(struct pipe_screen *screen) id_screen->base.resource_from_handle = identity_screen_resource_from_handle; id_screen->base.resource_get_handle = identity_screen_resource_get_handle; id_screen->base.resource_destroy = identity_screen_resource_destroy; - id_screen->base.user_buffer_create = identity_screen_user_buffer_create; id_screen->base.flush_frontbuffer = identity_screen_flush_frontbuffer; id_screen->base.fence_reference = identity_screen_fence_reference; id_screen->base.fence_signalled = identity_screen_fence_signalled; diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c index 198874b..4495e8d 100644 --- a/src/gallium/drivers/llvmpipe/lp_texture.c +++ b/src/gallium/drivers/llvmpipe/lp_texture.c @@ -1432,8 +1432,6 @@ llvmpipe_init_screen_resource_funcs(struct pipe_screen *screen) screen->resource_destroy = llvmpipe_resource_destroy; screen->resource_from_handle = llvmpipe_resource_from_handle; screen->resource_get_handle = llvmpipe_resource_get_handle; - screen->user_buffer_create = llvmpipe_user_buffer_create; - } diff --git a/src/gallium/drivers/noop/noop_pipe.c b/src/gallium/drivers/noop/noop_pipe.c index e47f944..4c233d1 100644 --- a/src/gallium/drivers/noop/noop_pipe.c +++ b/src/gallium/drivers/noop/noop_pipe.c @@ -142,23 +142,6 @@ static void noop_resource_destroy(struct pipe_screen *screen, FREE(resource); } -static struct pipe_resource *noop_user_buffer_create(struct pipe_screen *screen, - void *ptr, unsigned bytes, - unsigned bind) -{ - struct pipe_resource templ; - - templ.target = PIPE_BUFFER; - templ.format = PIPE_FORMAT_R8_UNORM; - templ.usage = PIPE_USAGE_IMMUTABLE; - templ.bind = bind; - templ.width0 = bytes; - templ.height0 = 1; - templ.depth0 = 1; - templ.flags = 0; - return noop_resource_create(screen, &templ); -} - /* * transfer @@ -392,7 +375,6 @@ struct pipe_screen *noop_screen_create(struct pipe_screen *oscreen) screen->resource_from_handle = noop_resource_from_handle; screen->resource_get_handle = noop_resource_get_handle; screen->resource_destroy = noop_resource_destroy; - screen->user_buffer_create = noop_user_buffer_create; screen->flush_frontbuffer = noop_flush_frontbuffer; return screen; diff --git a/src/gallium/drivers/nv30/nv30_resource.c b/src/gallium/drivers/nv30/nv30_resource.c index 6bcee4d..3d8e7d7 100644 --- a/src/gallium/drivers/nv30/nv30_resource.c +++ b/src/gallium/drivers/nv30/nv30_resource.c @@ -61,7 +61,6 @@ nv30_resource_screen_init(struct pipe_screen *pscreen) pscreen->resource_from_handle = nv30_resource_from_handle; pscreen->resource_get_handle = u_resource_get_handle_vtbl; pscreen->resource_destroy = u_resource_destroy_vtbl; - pscreen->user_buffer_create = nouveau_user_buffer_create; } void diff --git a/src/gallium/drivers/nv50/nv50_resource.c b/src/gallium/drivers/nv50/nv50_resource.c index a66a6a0..9fe18a6 100644 --- a/src/gallium/drivers/nv50/nv50_resource.c +++ b/src/gallium/drivers/nv50/nv50_resource.c @@ -103,5 +103,4 @@ nv50_screen_init_resource_functions(struct pipe_screen *pscreen) pscreen->resource_from_handle = nv50_resource_from_handle; pscreen->resource_get_handle = u_resource_get_handle_vtbl; pscreen->resource_destroy = u_resource_destroy_vtbl; - pscreen->user_buffer_create = nouveau_user_buffer_create; } diff --git a/src/gallium/drivers/nvc0/nvc0_resource.c b/src/gallium/drivers/nvc0/nvc0_resource.c index e8d83ca..daf5c90 100644 --- a/src/gallium/drivers/nvc0/nvc0_resource.c +++ b/src/gallium/drivers/nvc0/nvc0_resource.c @@ -61,5 +61,4 @@ nvc0_screen_init_resource_functions(struct pipe_screen *pscreen) pscreen->resource_from_handle = nvc0_resource_from_handle; pscreen->resource_get_handle = u_resource_get_handle_vtbl; pscreen->resource_destroy = u_resource_destroy_vtbl; - pscreen->user_buffer_create = nouveau_user_buffer_create; } diff --git a/src/gallium/drivers/r600/r600_buffer.c b/src/gallium/drivers/r600/r600_buffer.c index 857d860..2f7eb51 100644 --- a/src/gallium/drivers/r600/r600_buffer.c +++ b/src/gallium/drivers/r600/r600_buffer.c @@ -220,28 +220,3 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen, } return &rbuffer->b.b; } - -struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen, - void *ptr, unsigned bytes, - unsigned bind) -{ - struct r600_screen *rscreen = (struct r600_screen*)screen; - struct r600_resource *rbuffer; - - rbuffer = util_slab_alloc(&rscreen->pool_buffers); - - pipe_reference_init(&rbuffer->b.b.reference, 1); - rbuffer->b.vtbl = &r600_buffer_vtbl; - rbuffer->b.b.screen = screen; - rbuffer->b.b.target = PIPE_BUFFER; - rbuffer->b.b.format = PIPE_FORMAT_R8_UNORM; - rbuffer->b.b.usage = PIPE_USAGE_IMMUTABLE; - rbuffer->b.b.bind = bind; - rbuffer->b.b.width0 = bytes; - rbuffer->b.b.height0 = 1; - rbuffer->b.b.depth0 = 1; - rbuffer->b.b.array_size = 1; - rbuffer->b.b.flags = 0; - rbuffer->buf = NULL; - return &rbuffer->b.b; -} diff --git a/src/gallium/drivers/r600/r600_pipe.h b/src/gallium/drivers/r600/r600_pipe.h index a3ec9e5..d6a9707 100644 --- a/src/gallium/drivers/r600/r600_pipe.h +++ b/src/gallium/drivers/r600/r600_pipe.h @@ -400,9 +400,6 @@ bool r600_init_resource(struct r600_screen *rscreen, unsigned bind, unsigned usage); struct pipe_resource *r600_buffer_create(struct pipe_screen *screen, const struct pipe_resource *templ); -struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen, - void *ptr, unsigned bytes, - unsigned bind); /* r600_pipe.c */ void r600_flush(struct pipe_context *ctx, struct pipe_fence_handle **fence, diff --git a/src/gallium/drivers/r600/r600_resource.c b/src/gallium/drivers/r600/r600_resource.c index de339e0..ef0b4ce 100644 --- a/src/gallium/drivers/r600/r600_resource.c +++ b/src/gallium/drivers/r600/r600_resource.c @@ -50,7 +50,6 @@ void r600_init_screen_resource_functions(struct pipe_screen *screen) screen->resource_from_handle = r600_resource_from_handle; screen->resource_get_handle = u_resource_get_handle_vtbl; screen->resource_destroy = u_resource_destroy_vtbl; - screen->user_buffer_create = r600_user_buffer_create; } void r600_init_context_resource_functions(struct r600_context *r600) diff --git a/src/gallium/drivers/radeonsi/r600_buffer.c b/src/gallium/drivers/radeonsi/r600_buffer.c index c6b7071..8fd7e27 100644 --- a/src/gallium/drivers/radeonsi/r600_buffer.c +++ b/src/gallium/drivers/radeonsi/r600_buffer.c @@ -178,31 +178,6 @@ struct pipe_resource *r600_buffer_create(struct pipe_screen *screen, return &rbuffer->b.b; } -struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen, - void *ptr, unsigned bytes, - unsigned bind) -{ - struct r600_screen *rscreen = (struct r600_screen*)screen; - struct r600_resource *rbuffer; - - rbuffer = util_slab_alloc(&rscreen->pool_buffers); - - pipe_reference_init(&rbuffer->b.b.reference, 1); - rbuffer->b.vtbl = &r600_buffer_vtbl; - rbuffer->b.b.screen = screen; - rbuffer->b.b.target = PIPE_BUFFER; - rbuffer->b.b.format = PIPE_FORMAT_R8_UNORM; - rbuffer->b.b.usage = PIPE_USAGE_IMMUTABLE; - rbuffer->b.b.bind = bind; - rbuffer->b.b.width0 = bytes; - rbuffer->b.b.height0 = 1; - rbuffer->b.b.depth0 = 1; - rbuffer->b.b.array_size = 1; - rbuffer->b.b.flags = 0; - rbuffer->buf = NULL; - return &rbuffer->b.b; -} - void r600_upload_index_buffer(struct r600_context *rctx, struct pipe_index_buffer *ib, unsigned count) { diff --git a/src/gallium/drivers/radeonsi/r600_resource.c b/src/gallium/drivers/radeonsi/r600_resource.c index 0e861c1..d9be706 100644 --- a/src/gallium/drivers/radeonsi/r600_resource.c +++ b/src/gallium/drivers/radeonsi/r600_resource.c @@ -50,7 +50,6 @@ void r600_init_screen_resource_functions(struct pipe_screen *screen) screen->resource_from_handle = r600_resource_from_handle; screen->resource_get_handle = u_resource_get_handle_vtbl; screen->resource_destroy = u_resource_destroy_vtbl; - screen->user_buffer_create = r600_user_buffer_create; } void r600_init_context_resource_functions(struct r600_context *r600) diff --git a/src/gallium/drivers/radeonsi/radeonsi_pipe.h b/src/gallium/drivers/radeonsi/radeonsi_pipe.h index bba4cf2..b16ec10 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_pipe.h +++ b/src/gallium/drivers/radeonsi/radeonsi_pipe.h @@ -384,9 +384,6 @@ bool r600_init_resource(struct r600_screen *rscreen, unsigned bind, unsigned usage); struct pipe_resource *r600_buffer_create(struct pipe_screen *screen, const struct pipe_resource *templ); -struct pipe_resource *r600_user_buffer_create(struct pipe_screen *screen, - void *ptr, unsigned bytes, - unsigned bind); void r600_upload_index_buffer(struct r600_context *rctx, struct pipe_index_buffer *ib, unsigned count); diff --git a/src/gallium/drivers/rbug/rbug_screen.c b/src/gallium/drivers/rbug/rbug_screen.c index 1b7ca7c..2471fdb 100644 --- a/src/gallium/drivers/rbug/rbug_screen.c +++ b/src/gallium/drivers/rbug/rbug_screen.c @@ -186,28 +186,6 @@ rbug_screen_resource_destroy(struct pipe_screen *screen, rbug_resource_destroy(rbug_resource(_resource)); } -static struct pipe_resource * -rbug_screen_user_buffer_create(struct pipe_screen *_screen, - void *ptr, - unsigned bytes, - unsigned usage) -{ - struct rbug_screen *rb_screen = rbug_screen(_screen); - struct pipe_screen *screen = rb_screen->screen; - struct pipe_resource *result; - - result = screen->user_buffer_create(screen, - ptr, - bytes, - usage); - - if (result) - return rbug_resource_create(rb_screen, result); - return NULL; -} - - - static void rbug_screen_flush_frontbuffer(struct pipe_screen *_screen, struct pipe_resource *_resource, @@ -298,7 +276,6 @@ rbug_screen_create(struct pipe_screen *screen) rb_screen->base.resource_from_handle = rbug_screen_resource_from_handle; rb_screen->base.resource_get_handle = rbug_screen_resource_get_handle; rb_screen->base.resource_destroy = rbug_screen_resource_destroy; - rb_screen->base.user_buffer_create = rbug_screen_user_buffer_create; rb_screen->base.flush_frontbuffer = rbug_screen_flush_frontbuffer; rb_screen->base.fence_reference = rbug_screen_fence_reference; rb_screen->base.fence_signalled = rbug_screen_fence_signalled; diff --git a/src/gallium/drivers/softpipe/sp_texture.c b/src/gallium/drivers/softpipe/sp_texture.c index ee8d423..978fbe1 100644 --- a/src/gallium/drivers/softpipe/sp_texture.c +++ b/src/gallium/drivers/softpipe/sp_texture.c @@ -506,6 +506,4 @@ softpipe_init_screen_texture_funcs(struct pipe_screen *screen) screen->resource_destroy = softpipe_resource_destroy; screen->resource_from_handle = softpipe_resource_from_handle; screen->resource_get_handle = softpipe_resource_get_handle; - screen->user_buffer_create = softpipe_user_buffer_create; - } diff --git a/src/gallium/drivers/svga/svga_resource.c b/src/gallium/drivers/svga/svga_resource.c index b86469a..890c953 100644 --- a/src/gallium/drivers/svga/svga_resource.c +++ b/src/gallium/drivers/svga/svga_resource.c @@ -73,5 +73,4 @@ svga_init_screen_resource_functions(struct svga_screen *is) is->screen.resource_from_handle = svga_resource_from_handle; is->screen.resource_get_handle = u_resource_get_handle_vtbl; is->screen.resource_destroy = u_resource_destroy_vtbl; - is->screen.user_buffer_create = svga_user_buffer_create; } diff --git a/src/gallium/drivers/trace/tr_screen.c b/src/gallium/drivers/trace/tr_screen.c index fd5acbe..4a1aa99 100644 --- a/src/gallium/drivers/trace/tr_screen.c +++ b/src/gallium/drivers/trace/tr_screen.c @@ -319,49 +319,6 @@ trace_screen_resource_destroy(struct pipe_screen *_screen, } - -/******************************************************************** - * buffer - */ - - - -static struct pipe_resource * -trace_screen_user_buffer_create(struct pipe_screen *_screen, - void *data, - unsigned size, - unsigned usage) -{ - struct trace_screen *tr_scr = trace_screen(_screen); - struct pipe_screen *screen = tr_scr->screen; - struct pipe_resource *result; - - trace_dump_call_begin("pipe_screen", "user_buffer_create"); - - trace_dump_arg(ptr, screen); - trace_dump_arg_begin("data"); - trace_dump_bytes(data, size); - trace_dump_arg_end(); - trace_dump_arg(uint, size); - trace_dump_arg(uint, usage); - - result = screen->user_buffer_create(screen, data, size, usage); - - trace_dump_ret(ptr, result); - - trace_dump_call_end(); - - if(result) { - assert(!(result->flags & TRACE_FLAG_USER_BUFFER)); - result->flags |= TRACE_FLAG_USER_BUFFER; - } - - return trace_resource_create(tr_scr, result); -} - - - - /******************************************************************** * fence */ @@ -506,7 +463,6 @@ trace_screen_create(struct pipe_screen *screen) tr_scr->base.resource_from_handle = trace_screen_resource_from_handle; tr_scr->base.resource_get_handle = trace_screen_resource_get_handle; tr_scr->base.resource_destroy = trace_screen_resource_destroy; - tr_scr->base.user_buffer_create = trace_screen_user_buffer_create; tr_scr->base.fence_reference = trace_screen_fence_reference; tr_scr->base.fence_signalled = trace_screen_fence_signalled; tr_scr->base.fence_finish = trace_screen_fence_finish; diff --git a/src/gallium/include/pipe/p_screen.h b/src/gallium/include/pipe/p_screen.h index 7ae7c9a..b4a7f01 100644 --- a/src/gallium/include/pipe/p_screen.h +++ b/src/gallium/include/pipe/p_screen.h @@ -162,32 +162,6 @@ struct pipe_screen { /** - * Create a buffer that wraps user-space data. - * - * Effectively this schedules a delayed call to buffer_create - * followed by an upload of the data at *some point in the future*, - * or perhaps never. Basically the allocate/upload is delayed - * until the buffer is actually passed to hardware. - * - * The intention is to provide a quick way to turn regular data - * into a buffer, and secondly to avoid a copy operation if that - * data subsequently turns out to be only accessed by the CPU. - * - * Common example is OpenGL vertex buffers that are subsequently - * processed either by software TNL in the driver or by passing to - * hardware. - * - * XXX: What happens if the delayed call to buffer_create() fails? - * - * Note that ptr may be accessed at any time upto the time when the - * buffer is destroyed, so the data must not be freed before then. - */ - struct pipe_resource *(*user_buffer_create)(struct pipe_screen *screen, - void *ptr, - unsigned bytes, - unsigned bind_flags); - - /** * Do any special operations to ensure frontbuffer contents are * displayed, eg copy fake frontbuffer. * \param winsys_drawable_handle an opaque handle that the calling context -- 2.7.4