Mesa (master): i965: Don' t set vp_outputs_written in the WM program key on Gen6+.

Kenneth Graunke kwg at kemper.freedesktop.org
Mon Aug 27 21:24:58 UTC 2012


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

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

i965: Don't set vp_outputs_written in the WM program key on Gen6+.

It's only used by on pre-Sandybridge hardware.

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 |   12 ++++++++----
 src/mesa/drivers/dri/i965/brw_wm.c   |    3 ++-
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index f5b2649..ae462f7 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2155,17 +2155,21 @@ brw_fs_precompile(struct gl_context *ctx, struct gl_shader_program *prog)
       key.iz_lookup |= IZ_DEPTH_WRITE_ENABLE_BIT;
    }
 
-   key.vp_outputs_written |= BITFIELD64_BIT(FRAG_ATTRIB_WPOS);
+   if (intel->gen < 6)
+      key.vp_outputs_written |= BITFIELD64_BIT(FRAG_ATTRIB_WPOS);
+
    for (int i = 0; i < FRAG_ATTRIB_MAX; i++) {
       if (!(fp->Base.InputsRead & BITFIELD64_BIT(i)))
 	 continue;
 
       key.proj_attrib_mask |= 1 << i;
 
-      int vp_index = _mesa_vert_result_to_frag_attrib((gl_vert_result) i);
+      if (intel->gen < 6) {
+         int vp_index = _mesa_vert_result_to_frag_attrib((gl_vert_result) i);
 
-      if (vp_index >= 0)
-	 key.vp_outputs_written |= BITFIELD64_BIT(vp_index);
+         if (vp_index >= 0)
+            key.vp_outputs_written |= BITFIELD64_BIT(vp_index);
+      }
    }
 
    key.clamp_fragment_color = true;
diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c
index e7ef9f2..8b7d069 100644
--- a/src/mesa/drivers/dri/i965/brw_wm.c
+++ b/src/mesa/drivers/dri/i965/brw_wm.c
@@ -636,7 +636,8 @@ static void brw_wm_populate_key( struct brw_context *brw,
    key->sample_alpha_to_coverage = ctx->Multisample.SampleAlphaToCoverage;
 
    /* CACHE_NEW_VS_PROG */
-   key->vp_outputs_written = brw->vs.prog_data->outputs_written;
+   if (intel->gen < 6)
+      key->vp_outputs_written = brw->vs.prog_data->outputs_written;
 
    /* The unique fragment program ID */
    key->program_string_id = fp->id;




More information about the mesa-commit mailing list