On 31 January 2016 at 11:55, Ilia Mirkin <imir...@alum.mit.edu> wrote: > Make them akin to shader buffers, with no refcounting/etc. Just used to > pass data about the bound image in ->set_shader_images.
LGTM. Reviewed-by: Dave Airlie <airl...@redhat.com> > > Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> > --- > src/gallium/auxiliary/util/u_inlines.h | 11 ----------- > src/gallium/drivers/ddebug/dd_context.c | 28 > +-------------------------- > src/gallium/drivers/ddebug/dd_pipe.h | 2 +- > src/gallium/drivers/ilo/ilo_state.c | 2 +- > src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 2 +- > src/gallium/include/pipe/p_context.h | 14 ++------------ > src/gallium/include/pipe/p_state.h | 4 +--- > 7 files changed, 7 insertions(+), 56 deletions(-) > > diff --git a/src/gallium/auxiliary/util/u_inlines.h > b/src/gallium/auxiliary/util/u_inlines.h > index 57a3b0b..d081203 100644 > --- a/src/gallium/auxiliary/util/u_inlines.h > +++ b/src/gallium/auxiliary/util/u_inlines.h > @@ -174,17 +174,6 @@ pipe_sampler_view_release(struct pipe_context *ctx, > } > > static inline void > -pipe_image_view_reference(struct pipe_image_view **ptr, struct > pipe_image_view *view) > -{ > - struct pipe_image_view *old_view = *ptr; > - > - if (pipe_reference_described(&(*ptr)->reference, &view->reference, > - > (debug_reference_descriptor)debug_describe_image_view)) > - old_view->context->image_view_destroy(old_view->context, old_view); > - *ptr = view; > -} > - > -static inline void > pipe_so_target_reference(struct pipe_stream_output_target **ptr, > struct pipe_stream_output_target *target) > { > diff --git a/src/gallium/drivers/ddebug/dd_context.c > b/src/gallium/drivers/ddebug/dd_context.c > index 3ae7764..9dfaa0a 100644 > --- a/src/gallium/drivers/ddebug/dd_context.c > +++ b/src/gallium/drivers/ddebug/dd_context.c > @@ -415,30 +415,6 @@ dd_context_sampler_view_destroy(struct pipe_context > *_pipe, > pipe->sampler_view_destroy(pipe, view); > } > > -static struct pipe_image_view * > -dd_context_create_image_view(struct pipe_context *_pipe, > - struct pipe_resource *resource, > - const struct pipe_image_view *templ) > -{ > - struct pipe_context *pipe = dd_context(_pipe)->pipe; > - struct pipe_image_view *view = > - pipe->create_image_view(pipe, resource, templ); > - > - if (!view) > - return NULL; > - view->context = _pipe; > - return view; > -} > - > -static void > -dd_context_image_view_destroy(struct pipe_context *_pipe, > - struct pipe_image_view *view) > -{ > - struct pipe_context *pipe = dd_context(_pipe)->pipe; > - > - pipe->image_view_destroy(pipe, view); > -} > - > static struct pipe_stream_output_target * > dd_context_create_stream_output_target(struct pipe_context *_pipe, > struct pipe_resource *res, > @@ -486,7 +462,7 @@ dd_context_set_sampler_views(struct pipe_context *_pipe, > unsigned shader, > static void > dd_context_set_shader_images(struct pipe_context *_pipe, unsigned shader, > unsigned start, unsigned num, > - struct pipe_image_view **views) > + struct pipe_image_view *views) > { > struct dd_context *dctx = dd_context(_pipe); > struct pipe_context *pipe = dctx->pipe; > @@ -744,8 +720,6 @@ dd_context_create(struct dd_screen *dscreen, struct > pipe_context *pipe) > CTX_INIT(sampler_view_destroy); > CTX_INIT(create_surface); > CTX_INIT(surface_destroy); > - CTX_INIT(create_image_view); > - CTX_INIT(image_view_destroy); > CTX_INIT(transfer_map); > CTX_INIT(transfer_flush_region); > CTX_INIT(transfer_unmap); > diff --git a/src/gallium/drivers/ddebug/dd_pipe.h > b/src/gallium/drivers/ddebug/dd_pipe.h > index 80098dc..c9bbd56 100644 > --- a/src/gallium/drivers/ddebug/dd_pipe.h > +++ b/src/gallium/drivers/ddebug/dd_pipe.h > @@ -94,7 +94,7 @@ struct dd_context > struct pipe_constant_buffer > constant_buffers[PIPE_SHADER_TYPES][PIPE_MAX_CONSTANT_BUFFERS]; > struct pipe_sampler_view > *sampler_views[PIPE_SHADER_TYPES][PIPE_MAX_SAMPLERS]; > struct dd_state *sampler_states[PIPE_SHADER_TYPES][PIPE_MAX_SAMPLERS]; > - struct pipe_image_view > *shader_images[PIPE_SHADER_TYPES][PIPE_MAX_SHADER_IMAGES]; > + struct pipe_image_view > shader_images[PIPE_SHADER_TYPES][PIPE_MAX_SHADER_IMAGES]; > struct pipe_shader_buffer > shader_buffers[PIPE_SHADER_TYPES][PIPE_MAX_SHADER_BUFFERS]; > > struct dd_state *velems; > diff --git a/src/gallium/drivers/ilo/ilo_state.c > b/src/gallium/drivers/ilo/ilo_state.c > index 8dc2d38..f8d2637 100644 > --- a/src/gallium/drivers/ilo/ilo_state.c > +++ b/src/gallium/drivers/ilo/ilo_state.c > @@ -1851,7 +1851,7 @@ ilo_set_sampler_views(struct pipe_context *pipe, > unsigned shader, > static void > ilo_set_shader_images(struct pipe_context *pipe, unsigned shader, > unsigned start, unsigned count, > - struct pipe_image_view **views) > + struct pipe_image_view *views) > { > #if 0 > struct ilo_state_vector *vec = &ilo_context(pipe)->state_vector; > diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c > b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c > index cf3d349..23fc721 100644 > --- a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c > +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c > @@ -1241,7 +1241,7 @@ nvc0_set_compute_resources(struct pipe_context *pipe, > static void > nvc0_set_shader_images(struct pipe_context *pipe, unsigned shader, > unsigned start_slot, unsigned count, > - struct pipe_image_view **views) > + struct pipe_image_view *views) > { > } > > diff --git a/src/gallium/include/pipe/p_context.h > b/src/gallium/include/pipe/p_context.h > index f69a75b..c380399 100644 > --- a/src/gallium/include/pipe/p_context.h > +++ b/src/gallium/include/pipe/p_context.h > @@ -290,14 +290,14 @@ struct pipe_context { > * \param shader selects shader stage > * \param start_slot first image slot to bind. > * \param count number of consecutive images to bind. > - * \param buffers array of pointers to the images to bind, it > + * \param buffers array of the images to bind, it > * should contain at least \a count elements > * unless it's NULL, in which case no images will > * be bound. > */ > void (*set_shader_images)(struct pipe_context *, unsigned shader, > unsigned start_slot, unsigned count, > - struct pipe_image_view **images); > + struct pipe_image_view *images); > > void (*set_vertex_buffers)( struct pipe_context *, > unsigned start_slot, > @@ -455,16 +455,6 @@ struct pipe_context { > void (*surface_destroy)(struct pipe_context *ctx, > struct pipe_surface *); > > - /** > - * Create an image view into a buffer or texture to be used with load, > - * store, and atomic instructions by a shader stage. > - */ > - struct pipe_image_view * (*create_image_view)(struct pipe_context *ctx, > - struct pipe_resource > *texture, > - const struct > pipe_image_view *templat); > - > - void (*image_view_destroy)(struct pipe_context *ctx, > - struct pipe_image_view *view); > > /** > * Map a resource. > diff --git a/src/gallium/include/pipe/p_state.h > b/src/gallium/include/pipe/p_state.h > index 2e4d283..ca7775d 100644 > --- a/src/gallium/include/pipe/p_state.h > +++ b/src/gallium/include/pipe/p_state.h > @@ -393,14 +393,12 @@ struct pipe_sampler_view > > > /** > - * A view into a writable buffer or texture that can be bound to a shader > + * A description of a writable buffer or texture that can be bound to a > shader > * stage. > */ > struct pipe_image_view > { > - struct pipe_reference reference; > struct pipe_resource *resource; /**< resource into which this is a view > */ > - struct pipe_context *context; /**< context this view belongs to */ > enum pipe_format format; /**< typed PIPE_FORMAT_x */ > > union { > -- > 2.4.10 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev