Now that we have the number of samplers available, we don't need to iterate over all 16. This should be particularly helpful for vertex shaders.
Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> --- src/mesa/drivers/dri/i965/brw_program.h | 1 + src/mesa/drivers/dri/i965/brw_vs.c | 3 ++- src/mesa/drivers/dri/i965/brw_wm.c | 6 ++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_program.h b/src/mesa/drivers/dri/i965/brw_program.h index 2a944a0..a2997e7 100644 --- a/src/mesa/drivers/dri/i965/brw_program.h +++ b/src/mesa/drivers/dri/i965/brw_program.h @@ -44,6 +44,7 @@ struct brw_sampler_prog_key_data { void brw_populate_sampler_prog_key_data(struct gl_context *ctx, const struct gl_program *prog, + unsigned sampler_count, struct brw_sampler_prog_key_data *key); bool brw_debug_recompile_sampler_key(struct brw_context *brw, const struct brw_sampler_prog_key_data *old_key, diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c index 7df93c2..7d67edd 100644 --- a/src/mesa/drivers/dri/i965/brw_vs.c +++ b/src/mesa/drivers/dri/i965/brw_vs.c @@ -455,7 +455,8 @@ static void brw_upload_vs_prog(struct brw_context *brw) } /* _NEW_TEXTURE */ - brw_populate_sampler_prog_key_data(ctx, prog, &key.base.tex); + brw_populate_sampler_prog_key_data(ctx, prog, brw->vs.sampler_count, + &key.base.tex); /* BRW_NEW_VERTICES */ if (brw->gen < 8 && !brw->is_haswell) { diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index 10ca5ff..3df2b7d 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -298,11 +298,12 @@ brw_wm_debug_recompile(struct brw_context *brw, void brw_populate_sampler_prog_key_data(struct gl_context *ctx, const struct gl_program *prog, + unsigned sampler_count, struct brw_sampler_prog_key_data *key) { struct brw_context *brw = brw_context(ctx); - for (int s = 0; s < MAX_SAMPLERS; s++) { + for (int s = 0; s < sampler_count; s++) { key->swizzles[s] = SWIZZLE_NOOP; if (!(prog->SamplersUsed & (1 << s))) @@ -425,7 +426,8 @@ static void brw_wm_populate_key( struct brw_context *brw, key->clamp_fragment_color = ctx->Color._ClampFragmentColor; /* _NEW_TEXTURE */ - brw_populate_sampler_prog_key_data(ctx, prog, &key->tex); + brw_populate_sampler_prog_key_data(ctx, prog, brw->wm.sampler_count, + &key->tex); /* _NEW_BUFFERS */ /* -- 1.8.3.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev