[Mesa-dev] [PATCH] gallium: Use enum pipe_shader_type in bind_sampler_states()

Brian Paul brianp at vmware.com
Fri Aug 26 12:50:52 UTC 2016


On 08/26/2016 05:58 AM, Kai Wasserbäch wrote:
> Cc: Brian Paul <brianp at vmware.com>
> Signed-off-by: Kai Wasserbäch <kai at dev.carbon-project.org>
> ---
>
> Hi Brian,
> is this what you had in mind? If so, I was wondering whether virgl_encode.c
> would need to be updated as well. Doesn't seem like it, since the functions
> there map everything to uint32_t or some other standard type.
>
> Another point are the switch statements nouveau uses. To silence the -Wswitch
> warning of GCC I stuck a default case with two asserts at the end of them. But
> maybe it would be better to use an if...else for nv30 and nv50.

I think one assertion is enough.  It's up to the nouveau developers 
whether they want to do more.


>
> Cheers,
> Kai
>
> P.S.: If this is the right direction, I can do the remaining stuff as well.

I think there was another person interested so feel free to share the task.

BTW, looks like pipe_screen::get_compiler_options() has another unsigned 
--> enum candidate.


> P.P.S.: If this patch is accepted, please commit it for me, as I do not have
> commit access.

Looks good.  Just a few minor comments below.

-Brian

>
>
>   src/gallium/auxiliary/cso_cache/cso_context.c     |  7 ++++---
>   src/gallium/auxiliary/cso_cache/cso_context.h     |  5 +++--
>   src/gallium/auxiliary/draw/draw_pipe_aaline.c     |  9 ++++++---
>   src/gallium/auxiliary/draw/draw_pipe_pstipple.c   |  7 ++++---
>   src/gallium/drivers/ddebug/dd_context.c           |  3 ++-
>   src/gallium/drivers/freedreno/a2xx/fd2_texture.c  |  2 +-
>   src/gallium/drivers/freedreno/a3xx/fd3_texture.c  |  2 +-
>   src/gallium/drivers/freedreno/a4xx/fd4_texture.c  |  2 +-
>   src/gallium/drivers/freedreno/freedreno_texture.c |  2 +-
>   src/gallium/drivers/i915/i915_state.c             |  3 ++-
>   src/gallium/drivers/ilo/ilo_state.c               |  3 ++-
>   src/gallium/drivers/llvmpipe/lp_state_sampler.c   |  2 +-
>   src/gallium/drivers/noop/noop_state.c             |  3 ++-
>   src/gallium/drivers/nouveau/nv30/nv30_texture.c   |  6 +++++-
>   src/gallium/drivers/nouveau/nv50/nv50_state.c     |  6 +++++-
>   src/gallium/drivers/nouveau/nvc0/nvc0_state.c     | 12 +++++++++---
>   src/gallium/drivers/r300/r300_state.c             |  2 +-
>   src/gallium/drivers/r600/r600_state_common.c      |  2 +-
>   src/gallium/drivers/radeonsi/si_descriptors.c     |  3 ++-
>   src/gallium/drivers/rbug/rbug_context.c           |  3 ++-
>   src/gallium/drivers/softpipe/sp_state_sampler.c   |  2 +-
>   src/gallium/drivers/svga/svga_pipe_sampler.c      |  2 +-
>   src/gallium/drivers/swr/swr_state.cpp             |  2 +-
>   src/gallium/drivers/trace/tr_context.c            |  2 +-
>   src/gallium/drivers/vc4/vc4_state.c               |  2 +-
>   src/gallium/drivers/virgl/virgl_context.c         |  3 ++-
>   src/gallium/include/pipe/p_context.h              |  5 +++--
>   src/mesa/state_tracker/st_atom_sampler.c          |  2 +-
>   28 files changed, 66 insertions(+), 38 deletions(-)
>
> diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c
> index 4a54cff..6ffcce4 100644
> --- a/src/gallium/auxiliary/cso_cache/cso_context.c
> +++ b/src/gallium/auxiliary/cso_cache/cso_context.c
> @@ -316,7 +316,7 @@ void cso_destroy_context( struct cso_context *ctx )
>            static struct pipe_sampler_view *views[PIPE_MAX_SHADER_SAMPLER_VIEWS] = { NULL };
>            static void *zeros[PIPE_MAX_SAMPLERS] = { NULL };
>            struct pipe_screen *scr = ctx->pipe->screen;
> -         unsigned sh;
> +         enum pipe_shader_type sh;
>            for (sh = 0; sh < PIPE_SHADER_TYPES; sh++) {
>               int maxsam = scr->get_shader_param(scr, sh,
>                                                  PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS);
> @@ -1207,7 +1207,8 @@ cso_single_sampler(struct cso_context *ctx, unsigned shader_stage,
>    * Send staged sampler state to the driver.
>    */
>   void
> -cso_single_sampler_done(struct cso_context *ctx, unsigned shader_stage)
> +cso_single_sampler_done(struct cso_context *ctx,
> +                        enum pipe_shader_type shader_stage)
>   {
>      struct sampler_info *info = &ctx->samplers[shader_stage];
>      const unsigned old_nr_samplers = info->nr_samplers;
> @@ -1233,7 +1234,7 @@ cso_single_sampler_done(struct cso_context *ctx, unsigned shader_stage)
>    */
>   enum pipe_error
>   cso_set_samplers(struct cso_context *ctx,
> -                 unsigned shader_stage,
> +                 enum pipe_shader_type shader_stage,
>                    unsigned nr,
>                    const struct pipe_sampler_state **templates)
>   {
> diff --git a/src/gallium/auxiliary/cso_cache/cso_context.h b/src/gallium/auxiliary/cso_cache/cso_context.h
> index a4309c7..5c9cb5a 100644
> --- a/src/gallium/auxiliary/cso_cache/cso_context.h
> +++ b/src/gallium/auxiliary/cso_cache/cso_context.h
> @@ -60,7 +60,7 @@ enum pipe_error cso_set_rasterizer( struct cso_context *cso,
>
>   enum pipe_error
>   cso_set_samplers(struct cso_context *cso,
> -                 unsigned shader_stage,
> +                 enum pipe_shader_type shader_stage,
>                    unsigned count,
>                    const struct pipe_sampler_state **states);
>
> @@ -73,7 +73,8 @@ cso_single_sampler(struct cso_context *cso, unsigned shader_stage,
>                      unsigned idx, const struct pipe_sampler_state *states);
>
>   void
> -cso_single_sampler_done(struct cso_context *cso, unsigned shader_stage);
> +cso_single_sampler_done(struct cso_context *cso,
> +                        enum pipe_shader_type shader_stage);
>
>
>   enum pipe_error cso_set_vertex_elements(struct cso_context *ctx,
> diff --git a/src/gallium/auxiliary/draw/draw_pipe_aaline.c b/src/gallium/auxiliary/draw/draw_pipe_aaline.c
> index a5f0723..1ea77da 100644
> --- a/src/gallium/auxiliary/draw/draw_pipe_aaline.c
> +++ b/src/gallium/auxiliary/draw/draw_pipe_aaline.c
> @@ -118,10 +118,12 @@ struct aaline_stage
>      void (*driver_bind_fs_state)(struct pipe_context *, void *);
>      void (*driver_delete_fs_state)(struct pipe_context *, void *);
>
> -   void (*driver_bind_sampler_states)(struct pipe_context *, unsigned, unsigned,
> +   void (*driver_bind_sampler_states)(struct pipe_context *,
> +                                      enum pipe_shader_type, unsigned,
>                                         unsigned, void **);
>
> -   void (*driver_set_sampler_views)(struct pipe_context *, unsigned shader,
> +   void (*driver_set_sampler_views)(struct pipe_context *,
> +                                    enum pipe_shader_type shader,
>                                       unsigned start, unsigned count,
>                                       struct pipe_sampler_view **);
>   };
> @@ -884,7 +886,8 @@ aaline_delete_fs_state(struct pipe_context *pipe, void *fs)
>
>
>   static void
> -aaline_bind_sampler_states(struct pipe_context *pipe, unsigned shader,
> +aaline_bind_sampler_states(struct pipe_context *pipe,
> +                           enum pipe_shader_type shader,
>                              unsigned start, unsigned num, void **sampler)
>   {
>      struct aaline_stage *aaline = aaline_stage_from_pipe(pipe);
> diff --git a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
> index 0298334..ed94083 100644
> --- a/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
> +++ b/src/gallium/auxiliary/draw/draw_pipe_pstipple.c
> @@ -99,7 +99,8 @@ struct pstip_stage
>      void (*driver_bind_fs_state)(struct pipe_context *, void *);
>      void (*driver_delete_fs_state)(struct pipe_context *, void *);
>
> -   void (*driver_bind_sampler_states)(struct pipe_context *, unsigned,
> +   void (*driver_bind_sampler_states)(struct pipe_context *,
> +                                      enum pipe_shader_type,
>                                         unsigned, unsigned, void **);
>
>      void (*driver_set_sampler_views)(struct pipe_context *,
> @@ -195,7 +196,6 @@ pstip_first_tri(struct draw_stage *stage, struct prim_header *header)
>         stage->tri(stage, header);
>         return;
>      }
> -
>
>      /* how many samplers? */
>      /* we'll use sampler/texture[pstip->sampler_unit] for the stipple */
> @@ -374,7 +374,8 @@ pstip_delete_fs_state(struct pipe_context *pipe, void *fs)
>
>
>   static void
> -pstip_bind_sampler_states(struct pipe_context *pipe, unsigned shader,
> +pstip_bind_sampler_states(struct pipe_context *pipe,
> +                          enum pipe_shader_type shader,
>                             unsigned start, unsigned num, void **sampler)
>   {
>      struct pstip_stage *pstip = pstip_stage_from_pipe(pipe);
> diff --git a/src/gallium/drivers/ddebug/dd_context.c b/src/gallium/drivers/ddebug/dd_context.c
> index 4423e90..25c6b5f 100644
> --- a/src/gallium/drivers/ddebug/dd_context.c
> +++ b/src/gallium/drivers/ddebug/dd_context.c
> @@ -230,7 +230,8 @@ DD_CSO_CREATE(sampler, sampler)
>   DD_CSO_DELETE(sampler)
>
>   static void
> -dd_context_bind_sampler_states(struct pipe_context *_pipe, unsigned shader,
> +dd_context_bind_sampler_states(struct pipe_context *_pipe,
> +                               enum pipe_shader_type shader,
>                                  unsigned start, unsigned count, void **states)
>   {
>      struct dd_context *dctx = dd_context(_pipe);
> diff --git a/src/gallium/drivers/freedreno/a2xx/fd2_texture.c b/src/gallium/drivers/freedreno/a2xx/fd2_texture.c
> index 6e4b5a5..932383a 100644
> --- a/src/gallium/drivers/freedreno/a2xx/fd2_texture.c
> +++ b/src/gallium/drivers/freedreno/a2xx/fd2_texture.c
> @@ -103,7 +103,7 @@ fd2_sampler_state_create(struct pipe_context *pctx,
>
>   static void
>   fd2_sampler_states_bind(struct pipe_context *pctx,
> -		unsigned shader, unsigned start,
> +		enum pipe_shader_type shader, unsigned start,
>   		unsigned nr, void **hwcso)
>   {
>   	if (!hwcso)
> diff --git a/src/gallium/drivers/freedreno/a3xx/fd3_texture.c b/src/gallium/drivers/freedreno/a3xx/fd3_texture.c
> index ea2d341..94caaed 100644
> --- a/src/gallium/drivers/freedreno/a3xx/fd3_texture.c
> +++ b/src/gallium/drivers/freedreno/a3xx/fd3_texture.c
> @@ -143,7 +143,7 @@ fd3_sampler_state_create(struct pipe_context *pctx,
>
>   static void
>   fd3_sampler_states_bind(struct pipe_context *pctx,
> -		unsigned shader, unsigned start,
> +		enum pipe_shader_type shader, unsigned start,
>   		unsigned nr, void **hwcso)
>   {
>   	struct fd_context *ctx = fd_context(pctx);
> diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_texture.c b/src/gallium/drivers/freedreno/a4xx/fd4_texture.c
> index e62c732..bad56fe 100644
> --- a/src/gallium/drivers/freedreno/a4xx/fd4_texture.c
> +++ b/src/gallium/drivers/freedreno/a4xx/fd4_texture.c
> @@ -144,7 +144,7 @@ fd4_sampler_state_create(struct pipe_context *pctx,
>
>   static void
>   fd4_sampler_states_bind(struct pipe_context *pctx,
> -		unsigned shader, unsigned start,
> +		enum pipe_shader_type shader, unsigned start,
>   		unsigned nr, void **hwcso)
>   {
>   	struct fd_context *ctx = fd_context(pctx);
> diff --git a/src/gallium/drivers/freedreno/freedreno_texture.c b/src/gallium/drivers/freedreno/freedreno_texture.c
> index b506595..884d7b0 100644
> --- a/src/gallium/drivers/freedreno/freedreno_texture.c
> +++ b/src/gallium/drivers/freedreno/freedreno_texture.c
> @@ -86,7 +86,7 @@ static void set_sampler_views(struct fd_texture_stateobj *tex,
>
>   void
>   fd_sampler_states_bind(struct pipe_context *pctx,
> -		unsigned shader, unsigned start,
> +		enum pipe_shader_type shader, unsigned start,
>   		unsigned nr, void **hwcso)
>   {
>   	struct fd_context *ctx = fd_context(pctx);
> diff --git a/src/gallium/drivers/i915/i915_state.c b/src/gallium/drivers/i915/i915_state.c
> index 2efa14e..0290c0f 100644
> --- a/src/gallium/drivers/i915/i915_state.c
> +++ b/src/gallium/drivers/i915/i915_state.c
> @@ -358,7 +358,8 @@ static void i915_bind_fragment_sampler_states(struct pipe_context *pipe,
>
>
>   static void
> -i915_bind_sampler_states(struct pipe_context *pipe, unsigned shader,
> +i915_bind_sampler_states(struct pipe_context *pipe,
> +                         enum pipe_shader_type shader,
>                            unsigned start, unsigned num_samplers,
>                            void **samplers)
>   {
> diff --git a/src/gallium/drivers/ilo/ilo_state.c b/src/gallium/drivers/ilo/ilo_state.c
> index 7693133..e05d49f 100644
> --- a/src/gallium/drivers/ilo/ilo_state.c
> +++ b/src/gallium/drivers/ilo/ilo_state.c
> @@ -1052,7 +1052,8 @@ ilo_create_sampler_state(struct pipe_context *pipe,
>   }
>
>   static void
> -ilo_bind_sampler_states(struct pipe_context *pipe, unsigned shader,
> +ilo_bind_sampler_states(struct pipe_context *pipe,
> +                        enum pipe_shader_type shader,
>                           unsigned start, unsigned count, void **samplers)
>   {
>      struct ilo_state_vector *vec = &ilo_context(pipe)->state_vector;
> diff --git a/src/gallium/drivers/llvmpipe/lp_state_sampler.c b/src/gallium/drivers/llvmpipe/lp_state_sampler.c
> index 665cd9e..6dd520f 100644
> --- a/src/gallium/drivers/llvmpipe/lp_state_sampler.c
> +++ b/src/gallium/drivers/llvmpipe/lp_state_sampler.c
> @@ -66,7 +66,7 @@ llvmpipe_create_sampler_state(struct pipe_context *pipe,
>
>   static void
>   llvmpipe_bind_sampler_states(struct pipe_context *pipe,
> -                             unsigned shader,
> +                             enum pipe_shader_type shader,
>                                unsigned start,
>                                unsigned num,
>                                void **samplers)
> diff --git a/src/gallium/drivers/noop/noop_state.c b/src/gallium/drivers/noop/noop_state.c
> index 0c0ad9f..ed964dd 100644
> --- a/src/gallium/drivers/noop/noop_state.c
> +++ b/src/gallium/drivers/noop/noop_state.c
> @@ -130,7 +130,8 @@ static void noop_set_sampler_views(struct pipe_context *ctx, unsigned shader,
>   {
>   }
>
> -static void noop_bind_sampler_states(struct pipe_context *ctx, unsigned shader,
> +static void noop_bind_sampler_states(struct pipe_context *ctx,
> +                                     enum pipe_shader_type shader,
>                                        unsigned start, unsigned count,
>                                        void **states)
>   {
> diff --git a/src/gallium/drivers/nouveau/nv30/nv30_texture.c b/src/gallium/drivers/nouveau/nv30/nv30_texture.c
> index 4f4f87e..dc1a476 100644
> --- a/src/gallium/drivers/nouveau/nv30/nv30_texture.c
> +++ b/src/gallium/drivers/nouveau/nv30/nv30_texture.c
> @@ -188,7 +188,7 @@ nv30_sampler_state_delete(struct pipe_context *pipe, void *hwcso)
>
>   static void
>   nv30_bind_sampler_states(struct pipe_context *pipe,
> -                         unsigned shader, unsigned start_slot,
> +                         enum pipe_shader_type shader, unsigned start_slot,
>                            unsigned num_samplers, void **samplers)
>   {
>      switch (shader) {
> @@ -198,6 +198,10 @@ nv30_bind_sampler_states(struct pipe_context *pipe,
>      case PIPE_SHADER_FRAGMENT:
>         nv30_fragtex_sampler_states_bind(pipe, num_samplers, samplers);
>         break;
> +   default:
> +	  assert(shader <= PIPE_SHADER_TYPES);
> +	  assert(!"invalid/unhandled type");
> +      break;

The indentation is incorrect.  I think one assertion like 
assert(!"unexpected shader type") would suffice.  Same below for nv50.


>      }
>   }
>
> diff --git a/src/gallium/drivers/nouveau/nv50/nv50_state.c b/src/gallium/drivers/nouveau/nv50/nv50_state.c
> index b674114..a04573f 100644
> --- a/src/gallium/drivers/nouveau/nv50/nv50_state.c
> +++ b/src/gallium/drivers/nouveau/nv50/nv50_state.c
> @@ -633,7 +633,7 @@ nv50_gp_sampler_states_bind(struct pipe_context *pipe, unsigned nr, void **s)
>
>   static void
>   nv50_bind_sampler_states(struct pipe_context *pipe,
> -                         unsigned shader, unsigned start,
> +                         enum pipe_shader_type shader, unsigned start,
>                            unsigned num_samplers, void **samplers)
>   {
>      assert(start == 0);
> @@ -647,6 +647,10 @@ nv50_bind_sampler_states(struct pipe_context *pipe,
>      case PIPE_SHADER_FRAGMENT:
>         nv50_fp_sampler_states_bind(pipe, num_samplers, samplers);
>         break;
> +   default:
> +      assert(shader <= PIPE_SHADER_TYPES);
> +      assert(!"invalid/unhandled type");
> +      break;
>      }
>   }
>
> diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c
> index b9ac9f4..48aaa46 100644
> --- a/src/gallium/drivers/nouveau/nvc0/nvc0_state.c
> +++ b/src/gallium/drivers/nouveau/nvc0/nvc0_state.c
> @@ -426,7 +426,8 @@ nvc0_sampler_state_delete(struct pipe_context *pipe, void *hwcso)
>   }
>
>   static inline void
> -nvc0_stage_sampler_states_bind(struct nvc0_context *nvc0, int s,
> +nvc0_stage_sampler_states_bind(struct nvc0_context *nvc0,
> +                               enum pipe_shader_type s,
>                                  unsigned nr, void **hwcso)
>   {
>      unsigned i;
> @@ -456,7 +457,7 @@ nvc0_stage_sampler_states_bind(struct nvc0_context *nvc0, int s,
>
>   static void
>   nvc0_stage_sampler_states_bind_range(struct nvc0_context *nvc0,
> -                                     const unsigned s,
> +                                     const enum pipe_shader_type s,
>                                        unsigned start, unsigned nr, void **cso)
>   {
>      const unsigned end = start + nr;
> @@ -497,7 +498,8 @@ nvc0_stage_sampler_states_bind_range(struct nvc0_context *nvc0,
>   }
>
>   static void
> -nvc0_bind_sampler_states(struct pipe_context *pipe, unsigned shader,
> +nvc0_bind_sampler_states(struct pipe_context *pipe,
> +                         enum pipe_shader_type shader,
>                            unsigned start, unsigned nr, void **s)
>   {
>      switch (shader) {
> @@ -526,6 +528,10 @@ nvc0_bind_sampler_states(struct pipe_context *pipe, unsigned shader,
>                                              start, nr, s);
>         nvc0_context(pipe)->dirty_cp |= NVC0_NEW_CP_SAMPLERS;
>         break;
> +   default:
> +      assert(shader <= PIPE_SHADER_TYPES);
> +      assert(!"invalid/unhandled type");
> +      break;
>      }
>   }
>
> diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c
> index 01ccd46..7c1aed8 100644
> --- a/src/gallium/drivers/r300/r300_state.c
> +++ b/src/gallium/drivers/r300/r300_state.c
> @@ -1469,7 +1469,7 @@ static void*
>   }
>
>   static void r300_bind_sampler_states(struct pipe_context* pipe,
> -                                     unsigned shader,
> +                                     enum pipe_shader_type shader,
>                                        unsigned start, unsigned count,
>                                        void** states)
>   {
> diff --git a/src/gallium/drivers/r600/r600_state_common.c b/src/gallium/drivers/r600/r600_state_common.c
> index 9008a4a..3b77a6e 100644
> --- a/src/gallium/drivers/r600/r600_state_common.c
> +++ b/src/gallium/drivers/r600/r600_state_common.c
> @@ -408,7 +408,7 @@ void r600_sampler_states_dirty(struct r600_context *rctx,
>   }
>
>   static void r600_bind_sampler_states(struct pipe_context *pipe,
> -                               unsigned shader,
> +                   enum pipe_shader_type shader,

Indentation.

>   			       unsigned start,
>   			       unsigned count, void **states)
>   {
> diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c b/src/gallium/drivers/radeonsi/si_descriptors.c
> index 0e026e9..075d082 100644
> --- a/src/gallium/drivers/radeonsi/si_descriptors.c
> +++ b/src/gallium/drivers/radeonsi/si_descriptors.c
> @@ -750,7 +750,8 @@ si_images_update_compressed_colortex_mask(struct si_images_info *images)
>
>   /* SAMPLER STATES */
>
> -static void si_bind_sampler_states(struct pipe_context *ctx, unsigned shader,
> +static void si_bind_sampler_states(struct pipe_context *ctx,
> +                                   enum pipe_shader_type shader,
>                                      unsigned start, unsigned count, void **states)
>   {
>   	struct si_context *sctx = (struct si_context *)ctx;
> diff --git a/src/gallium/drivers/rbug/rbug_context.c b/src/gallium/drivers/rbug/rbug_context.c
> index 3c2dc69..e878241 100644
> --- a/src/gallium/drivers/rbug/rbug_context.c
> +++ b/src/gallium/drivers/rbug/rbug_context.c
> @@ -284,7 +284,8 @@ rbug_create_sampler_state(struct pipe_context *_pipe,
>   }
>
>   static void
> -rbug_bind_sampler_states(struct pipe_context *_pipe, unsigned shader,
> +rbug_bind_sampler_states(struct pipe_context *_pipe,
> +                         enum pipe_shader_type shader,
>                            unsigned start, unsigned count,
>                            void **samplers)
>   {
> diff --git a/src/gallium/drivers/softpipe/sp_state_sampler.c b/src/gallium/drivers/softpipe/sp_state_sampler.c
> index f824743..6454f6b 100644
> --- a/src/gallium/drivers/softpipe/sp_state_sampler.c
> +++ b/src/gallium/drivers/softpipe/sp_state_sampler.c
> @@ -49,7 +49,7 @@
>    */
>   static void
>   softpipe_bind_sampler_states(struct pipe_context *pipe,
> -                             unsigned shader,
> +                             enum pipe_shader_type shader,
>                                unsigned start,
>                                unsigned num,
>                                void **samplers)
> diff --git a/src/gallium/drivers/svga/svga_pipe_sampler.c b/src/gallium/drivers/svga/svga_pipe_sampler.c
> index 63771ac..7630cbe 100644
> --- a/src/gallium/drivers/svga/svga_pipe_sampler.c
> +++ b/src/gallium/drivers/svga/svga_pipe_sampler.c
> @@ -284,7 +284,7 @@ svga_create_sampler_state(struct pipe_context *pipe,
>
>   static void
>   svga_bind_sampler_states(struct pipe_context *pipe,
> -                         unsigned shader,
> +                         enum pipe_shader_type shader,
>                            unsigned start,
>                            unsigned num,
>                            void **samplers)
> diff --git a/src/gallium/drivers/swr/swr_state.cpp b/src/gallium/drivers/swr/swr_state.cpp
> index 4c9a432..f9d8ea8 100644
> --- a/src/gallium/drivers/swr/swr_state.cpp
> +++ b/src/gallium/drivers/swr/swr_state.cpp
> @@ -235,7 +235,7 @@ swr_create_sampler_state(struct pipe_context *pipe,
>
>   static void
>   swr_bind_sampler_states(struct pipe_context *pipe,
> -                        unsigned shader,
> +                        enum pipe_shader_type shader,
>                           unsigned start,
>                           unsigned num,
>                           void **samplers)
> diff --git a/src/gallium/drivers/trace/tr_context.c b/src/gallium/drivers/trace/tr_context.c
> index ef36f5f..7d3329e 100644
> --- a/src/gallium/drivers/trace/tr_context.c
> +++ b/src/gallium/drivers/trace/tr_context.c
> @@ -377,7 +377,7 @@ trace_context_create_sampler_state(struct pipe_context *_pipe,
>
>   static void
>   trace_context_bind_sampler_states(struct pipe_context *_pipe,
> -                                  unsigned shader,
> +                                  enum pipe_shader_type shader,
>                                     unsigned start,
>                                     unsigned num_states,
>                                     void **states)
> diff --git a/src/gallium/drivers/vc4/vc4_state.c b/src/gallium/drivers/vc4/vc4_state.c
> index 19aae35..5706765 100644
> --- a/src/gallium/drivers/vc4/vc4_state.c
> +++ b/src/gallium/drivers/vc4/vc4_state.c
> @@ -559,7 +559,7 @@ vc4_create_sampler_state(struct pipe_context *pctx,
>
>   static void
>   vc4_sampler_states_bind(struct pipe_context *pctx,
> -                        unsigned shader, unsigned start,
> +                        enum pipe_shader_type shader, unsigned start,
>                           unsigned nr, void **hwcso)
>   {
>           struct vc4_context *vc4 = vc4_context(pctx);
> diff --git a/src/gallium/drivers/virgl/virgl_context.c b/src/gallium/drivers/virgl/virgl_context.c
> index 615bb50..625baf9 100644
> --- a/src/gallium/drivers/virgl/virgl_context.c
> +++ b/src/gallium/drivers/virgl/virgl_context.c
> @@ -765,7 +765,8 @@ static void virgl_delete_sampler_state(struct pipe_context *ctx,
>   }
>
>   static void virgl_bind_sampler_states(struct pipe_context *ctx,
> -                                     unsigned shader, unsigned start_slot,
> +                                     enum pipe_shader_type shader,
> +                                     unsigned start_slot,
>                                        unsigned num_samplers,
>                                        void **samplers)
>   {
> diff --git a/src/gallium/include/pipe/p_context.h b/src/gallium/include/pipe/p_context.h
> index 5359164..9c9a126 100644
> --- a/src/gallium/include/pipe/p_context.h
> +++ b/src/gallium/include/pipe/p_context.h
> @@ -193,8 +193,9 @@ struct pipe_context {
>      void * (*create_sampler_state)(struct pipe_context *,
>                                     const struct pipe_sampler_state *);
>      void   (*bind_sampler_states)(struct pipe_context *,
> -                                 unsigned shader, unsigned start_slot,
> -                                 unsigned num_samplers, void **samplers);
> +                                 enum pipe_shader_type shader,
> +                                 unsigned start_slot, unsigned num_samplers,
> +                                 void **samplers);
>      void   (*delete_sampler_state)(struct pipe_context *, void *);
>
>      void * (*create_rasterizer_state)(struct pipe_context *,
> diff --git a/src/mesa/state_tracker/st_atom_sampler.c b/src/mesa/state_tracker/st_atom_sampler.c
> index 88ae7a0..6b36ac7 100644
> --- a/src/mesa/state_tracker/st_atom_sampler.c
> +++ b/src/mesa/state_tracker/st_atom_sampler.c
> @@ -237,7 +237,7 @@ convert_sampler(struct st_context *st,
>    */
>   static void
>   update_shader_samplers(struct st_context *st,
> -                       unsigned shader_stage,
> +                       enum pipe_shader_type shader_stage,
>                          const struct gl_program *prog,
>                          unsigned max_units,
>                          struct pipe_sampler_state *samplers,
>



More information about the mesa-dev mailing list