From: Kenneth Graunke Date: Tue, 22 Feb 2011 18:04:18 +0000 (-0800) Subject: i965: Fix shaders that write to gl_PointSize on Sandybridge. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3e91070ea81da970b640acf22e2b1aa761161906;p=mesa.git 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 --- diff --git a/src/mesa/drivers/dri/i965/gen6_sf_state.c b/src/mesa/drivers/dri/i965/gen6_sf_state.c index f27782935d4..06ed89f8447 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++; }