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