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

Kenneth Graunke kwg at kemper.freedesktop.org
Tue Feb 22 18:54:51 UTC 2011


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

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>

---

 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 f277829..06ed89f 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