diff options
author | marha <marha@users.sourceforge.net> | 2014-05-29 20:50:12 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-05-29 20:50:12 +0200 |
commit | aec798fb4dc72d616732d0fa711faffaa8cd7590 (patch) | |
tree | 2814dfe69e7fb25b57492244d5cfa59d80fc8837 /mesalib/src/mesa/state_tracker/st_program.c | |
parent | 78c6c2b88ae54977a2a617f116a1598657a98b6f (diff) | |
parent | 816a5430313e07083c5325f0a430126a2e10ec41 (diff) | |
download | vcxsrv-aec798fb4dc72d616732d0fa711faffaa8cd7590.tar.gz vcxsrv-aec798fb4dc72d616732d0fa711faffaa8cd7590.tar.bz2 vcxsrv-aec798fb4dc72d616732d0fa711faffaa8cd7590.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/src/mesa/drivers/dri/common/dri_util.c
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_program.c')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_program.c | 30 |
1 files changed, 17 insertions, 13 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_program.c b/mesalib/src/mesa/state_tracker/st_program.c index f9887a2c4..26eb9786d 100644 --- a/mesalib/src/mesa/state_tracker/st_program.c +++ b/mesalib/src/mesa/state_tracker/st_program.c @@ -679,32 +679,36 @@ st_translate_fragment_program(struct st_context *st, outputsWritten &= ~(1 << FRAG_RESULT_STENCIL); } + if (outputsWritten & BITFIELD64_BIT(FRAG_RESULT_SAMPLE_MASK)) { + fs_output_semantic_name[fs_num_outputs] = TGSI_SEMANTIC_SAMPLEMASK; + fs_output_semantic_index[fs_num_outputs] = 0; + outputMapping[FRAG_RESULT_SAMPLE_MASK] = fs_num_outputs; + fs_num_outputs++; + outputsWritten &= ~(1 << FRAG_RESULT_SAMPLE_MASK); + } + /* 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: + case FRAG_RESULT_SAMPLE_MASK: /* handled above */ assert(0); break; case FRAG_RESULT_COLOR: - write_all = GL_TRUE; - break; - case FRAG_RESULT_SAMPLE_MASK: - semantic = TGSI_SEMANTIC_SAMPLEMASK; + 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++; 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++; } } |