mesa: fix texenv generation when num color bufs == 0
Before, if there were no color buffers enabled (with glDrawBuffers(GL_NONE))
when the texenv program was generated, we'd emit writes to OUTPUT[1] but
the OutputsWritten mask was 0. This inconsistency caused an assertion to
fail later in the Mesa->TGSI translation.
Fixes fd.o bug 28169
NOTE: this is a candidate for the 7.8 branch (and depends on commit
b6b9b17d27
).
This commit is contained in:
@@ -1203,11 +1203,14 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit)
|
||||
else
|
||||
alpha_saturate = GL_FALSE;
|
||||
|
||||
/* If this is the very last calculation, emit direct to output reg:
|
||||
/* If this is the very last calculation (and various other conditions
|
||||
* are met), emit directly to the color output register. Otherwise,
|
||||
* emit to a temporary register.
|
||||
*/
|
||||
if (key->separate_specular ||
|
||||
unit != p->last_tex_stage ||
|
||||
alpha_shift ||
|
||||
key->num_draw_buffers != 1 ||
|
||||
rgb_shift)
|
||||
dest = get_temp( p );
|
||||
else
|
||||
|
Reference in New Issue
Block a user