From: Kenneth Graunke Date: Thu, 1 Jan 2015 01:38:05 +0000 (-0800) Subject: i965: Copy shader->shadow_samplers to prog->ShadowSamplers. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1f1102c8349bd06d579e542ded32fb1aea8a27ab;p=mesa.git i965: Copy shader->shadow_samplers to prog->ShadowSamplers. ir_to_mesa does this - apparently we just forgot or something. Without this, we'll guess the wrong texture swizzle (XYZW for color instead of XXX1 for depth) when doing precompiles. This cuts 26 shader recompiles in a time demo of "Counter Strike: Global Offensive" (58 -> 32) on Sandybridge. Haswell still has 0 recompiles. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87886 Signed-off-by: Kenneth Graunke Reviewed-by: Matt Turner Reviewed-by: Chris Forbes --- diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp index e38dfd6635d..d76134b8335 100644 --- a/src/mesa/drivers/dri/i965/brw_shader.cpp +++ b/src/mesa/drivers/dri/i965/brw_shader.cpp @@ -242,6 +242,7 @@ brw_link_shader(struct gl_context *ctx, struct gl_shader_program *shProg) do_set_program_inouts(shader->base.ir, prog, shader->base.Stage); prog->SamplersUsed = shader->base.active_samplers; + prog->ShadowSamplers = shader->base.shadow_samplers; _mesa_update_shader_textures_used(shProg, prog); _mesa_reference_program(ctx, &shader->base.Program, prog);