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