diff options
author | Kenneth Graunke <[email protected]> | 2012-08-13 23:59:51 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2012-08-25 23:05:35 -0700 |
commit | a3685544e1e88828c4931059686cf3acc199079c (patch) | |
tree | b080319ef1e8f27c2046b83e14064a9ac6e805ce | |
parent | 98211d5af7efa26c350f6191457ab2564847abde (diff) |
i965: Don't set iz_lookup the FS precompile's program key on Gen6+.
We already changed the actual program key builder to only set these bits
on gen < 6; this patch just brings the precompile state back in line so
it doesn't mismatch every time.
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index e2dafdc114d..f5b2649dd29 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -2130,6 +2130,7 @@ bool brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog) { struct brw_context *brw = brw_context(ctx); + struct intel_context *intel = &brw->intel; struct brw_wm_prog_key key; if (!prog->_LinkedShaders[MESA_SHADER_FRAGMENT]) @@ -2142,15 +2143,17 @@ brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog) memset(&key, 0, sizeof(key)); - if (fp->UsesKill) - key.iz_lookup |= IZ_PS_KILL_ALPHATEST_BIT; + if (intel->gen < 6) { + if (fp->UsesKill) + key.iz_lookup |= IZ_PS_KILL_ALPHATEST_BIT; - if (fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) - key.iz_lookup |= IZ_PS_COMPUTES_DEPTH_BIT; + if (fp->Base.OutputsWritten & BITFIELD64_BIT(FRAG_RESULT_DEPTH)) + key.iz_lookup |= IZ_PS_COMPUTES_DEPTH_BIT; - /* Just assume depth testing. */ - key.iz_lookup |= IZ_DEPTH_TEST_ENABLE_BIT; - key.iz_lookup |= IZ_DEPTH_WRITE_ENABLE_BIT; + /* Just assume depth testing. */ + key.iz_lookup |= IZ_DEPTH_TEST_ENABLE_BIT; + key.iz_lookup |= IZ_DEPTH_WRITE_ENABLE_BIT; + } key.vp_outputs_written |= BITFIELD64_BIT(FRAG_ATTRIB_WPOS); for (int i = 0; i < FRAG_ATTRIB_MAX; i++) { |