summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2013-07-09 15:17:15 -0700
committerKenneth Graunke <[email protected]>2013-08-19 13:17:00 -0700
commitc5fe7d063cc886ef1307f8ea58a301debed12fba (patch)
tree36230f8474166eb6f36c006a4ed37cdd9f14aec1 /src/mesa
parentd0401d09ce19e47e01a3f1c86c10894515de26ad (diff)
i965: Shorten sampler loops in key setup.
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 <[email protected]> Reviewed-by: Paul Berry <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_program.h1
-rw-r--r--src/mesa/drivers/dri/i965/brw_vs.c3
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.c6
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 2a944a0858a..a2997e77036 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 b26a7a5f01b..9e18ef0119a 100644
--- a/src/mesa/drivers/dri/i965/brw_vs.c
+++ b/src/mesa/drivers/dri/i965/brw_vs.c
@@ -450,7 +450,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 10ca5ff84a5..3df2b7df4ce 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 */
/*