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

Samuel Pitoiset samuel.pitoiset at gmail.com
Fri Aug 26 13:54:31 UTC 2016



On 08/26/2016 01:58 PM, 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.
>
> Cheers,
> Kai
>
> P.S.: If this is the right direction, I can do the remaining stuff as well.
> P.P.S.: If this patch is accepted, please commit it for me, as I do not have
> commit access.
>
>
>  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");

assert(!"invalid PIPE_SHADER type"); is enough here.
Please apply the same change for nv50 and nvc0 as well.

> +      break;
>     }
>  }
>
> 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,
>  			       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,
>

-- 
-Samuel


More information about the mesa-dev mailing list