summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2017-10-26 15:22:45 -0700
committerKenneth Graunke <[email protected]>2017-10-29 20:54:16 -0700
commit992e2cf57f5a1eaab13ea6a3b5904b8248af8c83 (patch)
treed9d9974b5d528d531c1bc62e59d7f4cdddbe0ce9 /src/mesa/drivers/dri
parent86c68bb88618c5138a22bbbcfe6137d29f9f5f67 (diff)
i965: Only set key->high_quality_derivatives when it matters.
This avoids recompiles for shaders that don't use explicit derivatives when ctx->Hint.FragmentShaderDerivative == GL_NICEST. For example, GFXBench 5 Aztec Ruins sets the GL_NICEST hint before compiling any shaders, but none of them use dFdx() or dFdy() - only implicit derivatives. This doesn't eliminate any recompiles, but does eliminate one of the reasons for doing so. Reviewed-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index ad1c8aed79e..a1e39b55fcb 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -521,6 +521,7 @@ brw_wm_populate_key(struct brw_context *brw, struct brw_wm_prog_key *key)
/* _NEW_HINT */
key->high_quality_derivatives =
+ prog->info.uses_fddx_fddy &&
ctx->Hint.FragmentShaderDerivative == GL_NICEST;
if (devinfo->gen < 6)