diff options
author | marha <marha@users.sourceforge.net> | 2014-05-01 17:03:50 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-05-01 17:03:50 +0200 |
commit | aadab8d97e31348ffe45d1e5d36ad90b0ccd17aa (patch) | |
tree | 37bc7921f864ead4f6eb357b31a1eb66d46aaef9 /mesalib/src/mesa/state_tracker/st_program.c | |
parent | 2e0adb33e03e3142f1412ed570415c5ce616dcef (diff) | |
parent | ea0cd87ecbe9fc3c5503ccad7f87a895a458d6d4 (diff) | |
download | vcxsrv-aadab8d97e31348ffe45d1e5d36ad90b0ccd17aa.tar.gz vcxsrv-aadab8d97e31348ffe45d1e5d36ad90b0ccd17aa.tar.bz2 vcxsrv-aadab8d97e31348ffe45d1e5d36ad90b0ccd17aa.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
libxcb/src/xcb_util.c
mesalib/src/mesa/drivers/dri/common/dri_util.c
xorg-server/os/utils.c
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_program.c')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_program.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_program.c b/mesalib/src/mesa/state_tracker/st_program.c index 2f0ec32f5..f9887a2c4 100644 --- a/mesalib/src/mesa/state_tracker/st_program.c +++ b/mesalib/src/mesa/state_tracker/st_program.c @@ -682,6 +682,7 @@ st_translate_fragment_program(struct st_context *st, /* handle remaining outputs (color) */ for (attr = 0; attr < FRAG_RESULT_MAX; attr++) { if (outputsWritten & BITFIELD64_BIT(attr)) { + int semantic = TGSI_SEMANTIC_COLOR; switch (attr) { case FRAG_RESULT_DEPTH: case FRAG_RESULT_STENCIL: @@ -689,17 +690,21 @@ st_translate_fragment_program(struct st_context *st, assert(0); break; case FRAG_RESULT_COLOR: - write_all = GL_TRUE; /* fallthrough */ - default: - assert(attr == FRAG_RESULT_COLOR || - (FRAG_RESULT_DATA0 <= attr && attr < FRAG_RESULT_MAX)); - fs_output_semantic_name[fs_num_outputs] = TGSI_SEMANTIC_COLOR; - fs_output_semantic_index[fs_num_outputs] = numColors; - outputMapping[attr] = fs_num_outputs; - numColors++; + write_all = GL_TRUE; + break; + case FRAG_RESULT_SAMPLE_MASK: + semantic = TGSI_SEMANTIC_SAMPLEMASK; break; } + assert(attr == FRAG_RESULT_COLOR || + attr == FRAG_RESULT_SAMPLE_MASK || + (FRAG_RESULT_DATA0 <= attr && attr < FRAG_RESULT_MAX)); + fs_output_semantic_name[fs_num_outputs] = semantic; + fs_output_semantic_index[fs_num_outputs] = numColors; + outputMapping[attr] = fs_num_outputs; + numColors++; + fs_num_outputs++; } } |