Mesa (master): i965: Clear some undefined fields of g0 when using them for gen6 FB writes.

Eric Anholt anholt at kemper.freedesktop.org
Tue Oct 26 21:12:23 UTC 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Oct 26 10:31:08 2010 -0700

i965: Clear some undefined fields of g0 when using them for gen6 FB writes.

This doesn't appear to help any testcases I'm looking at, but it looks
like it's required.

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index c687fde..fc30ffc 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1961,6 +1961,20 @@ fs_visitor::generate_fb_write(fs_inst *inst)
 	 brw_MOV(p,
 		 brw_message_reg(inst->base_mrf),
 		 brw_vec8_grf(0, 0));
+
+	 if (inst->target > 0) {
+	    /* Set the render target index for choosing BLEND_STATE. */
+	    brw_MOV(p, retype(brw_vec1_reg(BRW_MESSAGE_REGISTER_FILE, 0, 2),
+			      BRW_REGISTER_TYPE_UD),
+		    brw_imm_ud(inst->target));
+	 }
+
+	 /* Clear viewport index, render target array index. */
+	 brw_AND(p, retype(brw_vec1_reg(BRW_MESSAGE_REGISTER_FILE, 0, 0),
+			   BRW_REGISTER_TYPE_UD),
+		 retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UD),
+		 brw_imm_ud(0xf7ff));
+
 	 implied_header = brw_null_reg();
       } else {
 	 implied_header = retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UW);




More information about the mesa-commit mailing list