Module: Mesa Branch: master Commit: d7f4c4e1b187552ede397f00fb56a6f0bb724ce1 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d7f4c4e1b187552ede397f00fb56a6f0bb724ce1
Author: Eric Anholt <[email protected]> Date: Wed Apr 20 16:49:19 2011 -0700 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. --- src/mesa/program/program_parse.y | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/mesa/program/program_parse.y b/src/mesa/program/program_parse.y index b35bc5a..85c783d 100644 --- a/src/mesa/program/program_parse.y +++ b/src/mesa/program/program_parse.y @@ -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 ']' { _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
