Mesa (7.10): i965: Fix shaders that write to gl_PointSize on Sandybridge.

Ian Romanick idr at kemper.freedesktop.org
Tue Mar 1 01:37:16 UTC 2011


Module: Mesa
Branch: 7.10
Commit: 4fef0bc1159083384a0ad616b351a35f2e3ff7fd
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4fef0bc1159083384a0ad616b351a35f2e3ff7fd

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Tue Feb 22 10:04:18 2011 -0800

i965: Fix shaders that write to gl_PointSize on Sandybridge.

gl_PointSize (VERT_RESULT_PSIZ) doesn't take up a message register,
as it's part of the header.  Without this fix, writing to gl_PointSize
would cause the SF to read and use the wrong attributes, leading to all
kinds of random looking failure.

Reviewed-by: Eric Anholt <eric at anholt.net>
(cherry picked from commit 3e91070ea81da970b640acf22e2b1aa761161906)

---

 src/mesa/drivers/dri/i965/gen6_sf_state.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c
index 45c148b..edc6f24 100644
--- a/src/mesa/drivers/dri/i965/gen6_sf_state.c
+++ b/src/mesa/drivers/dri/i965/gen6_sf_state.c
@@ -54,6 +54,8 @@ get_attr_override(struct brw_context *brw, int fs_attr, int two_side_color)
     * be FRAG_ATTRIB_*.
     */
    for (i = 1; i < vs_attr; i++) {
+      if (i == VERT_RESULT_PSIZ)
+	 continue;
       if (brw->vs.prog_data->outputs_written & BITFIELD64_BIT(i))
 	 attr_index++;
    }




More information about the mesa-commit mailing list