gallium: remove user_buffer_create from the interface
Nothing uses it now.
This commit is contained in:
parent
1a840cc592
commit
b496136af8
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -161,32 +161,6 @@ struct pipe_screen {
|
|||
struct pipe_resource *pt);
|
||||
|
||||
|
||||
/**
|
||||
* 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.
|
||||
|
|
Loading…
Reference in New Issue