mesa: Fix fragment.color (no index) writes with OPTION ARB_draw_buffers.

Fixes a bug in Trine where fragment.color would write
FRAG_RESULT_COLOR (which is interpreted by drivers as being the "write
this to all color buffers" option) instead of FRAG_RESULT_DATA0 (just
the first target).

Fixes piglit ATI_draw_buffers/arbfp-no-index.
This commit is contained in:
Eric Anholt
2011-04-20 16:49:19 -07:00
parent 79bde19ef9
commit d7f4c4e1b1
+8 -3
View File
@@ -2060,9 +2060,14 @@ resultColBinding: COLOR optResultFaceType optResultColorType
optResultFaceType:
{
$$ = (state->mode == ARB_vertex)
? VERT_RESULT_COL0
: FRAG_RESULT_COLOR;
if (state->mode == ARB_vertex) {
$$ = VERT_RESULT_COL0;
} else {
if (state->option.DrawBuffers)
$$ = FRAG_RESULT_DATA0;
else
$$ = FRAG_RESULT_COLOR;
}
}
| '[' INTEGER ']'
{