diff options
author | Brian Paul <[email protected]> | 2011-01-12 17:32:00 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2011-01-12 17:55:45 -0700 |
commit | 2fa6012f6a0b02de6093cbccba3bf4432f072e57 (patch) | |
tree | f3cc02bb281cef2d1e56fe73ab8920e39470635c | |
parent | 30616fdacfd3e2d8d3df64e4aa6b4cac405f3cf0 (diff) |
mesa: fix num_draw_buffers==0 in fixed-function fragment program generation
This fixes a problem when glDrawBuffers(GL_NONE). The fragment program
was writing to color output[0] but OutputsWritten was 0. That led to a
failed assertion in the Mesa->TGSI translation code.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
-rw-r--r-- | src/mesa/main/texenvprogram.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index a3fa3fe826c..c1380f2a645 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -1467,7 +1467,7 @@ create_new_program(struct gl_context *ctx, struct state_key *key, p.last_tex_stage = 0; release_temps(ctx, &p); - if (key->enabled_units) { + if (key->enabled_units && key->num_draw_buffers) { GLboolean needbumpstage = GL_FALSE; /* Zeroth pass - bump map textures first */ @@ -1560,7 +1560,7 @@ create_new_program(struct gl_context *ctx, struct state_key *key, _mesa_copy_instructions(p.program->Base.Instructions, instBuffer, p.program->Base.NumInstructions); - if (p.program->FogOption) { + if (key->num_draw_buffers && p.program->FogOption) { _mesa_append_fog_code(ctx, p.program); p.program->FogOption = GL_NONE; } |