[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