From 387a3d43d11cbd3eb1bd8ce787a2c693d575300c Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Thu, 8 Dec 2011 12:15:59 -0800 Subject: [PATCH] i965/fs: Only set brw_wm_prog_key data for samplers used by the WM. This should avoid state-dependent FS recompiles when samplers that are only used by the VS change. Signed-off-by: Kenneth Graunke Reviewed-by: Eric Anholt Reviewed-by: Ian Romanick --- src/mesa/drivers/dri/i965/brw_wm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index f23edfa798b..cad0af8c1ac 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -412,6 +412,7 @@ static void brw_wm_populate_key( struct brw_context *brw, /* BRW_NEW_FRAGMENT_PROGRAM */ const struct brw_fragment_program *fp = (struct brw_fragment_program *)brw->fragment_program; + const struct gl_program *prog = (struct gl_program *) brw->fragment_program; GLuint lookup = 0; GLuint line_aa; GLuint i; @@ -487,7 +488,8 @@ static void brw_wm_populate_key( struct brw_context *brw, /* _NEW_TEXTURE */ for (i = 0; i < BRW_MAX_TEX_UNIT; i++) { - brw_populate_sampler_prog_key_data(ctx, &key->tex, i); + if (prog->TexturesUsed[i]) + brw_populate_sampler_prog_key_data(ctx, &key->tex, i); } /* _NEW_BUFFERS */ -- 2.30.2