Mesa (master): i965: Don't set iz_lookup the FS precompile' s program key on Gen6+.

Kenneth Graunke kwg at kemper.freedesktop.org
Sun Aug 26 06:05:37 UTC 2012


Module: Mesa
Branch: master
Commit: a3685544e1e88828c4931059686cf3acc199079c
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a3685544e1e88828c4931059686cf3acc199079c

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Mon Aug 13 23:59:51 2012 -0700

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 <kenneth at whitecape.org>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 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 e2dafdc..f5b2649 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++) {




More information about the mesa-commit mailing list