Mesa (master): mesa: fix num_draw_buffers== 0 in fixed-function fragment program generation
Brian Paul
brianp at kemper.freedesktop.org
Thu Jan 13 00:59:25 UTC 2011
Module: Mesa
Branch: master
Commit: 2fa6012f6a0b02de6093cbccba3bf4432f072e57
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2fa6012f6a0b02de6093cbccba3bf4432f072e57
Author: Brian Paul <brianp at vmware.com>
Date: Wed Jan 12 17:32:00 2011 -0700
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.
---
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 a3fa3fe..c1380f2 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;
}
More information about the mesa-commit
mailing list