From b5cbaf945dd5213d5faf7bb7e4d68d0d25a25b55 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Thu, 8 Sep 2005 18:45:03 +0000 Subject: [PATCH] Keep NumTemporaries uptodate. Make sure oC alpha is populated when separate_specular enabled. --- src/mesa/main/texenvprogram.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/mesa/main/texenvprogram.c b/src/mesa/main/texenvprogram.c index 4cb97469a58..7c0d40ea211 100644 --- a/src/mesa/main/texenvprogram.c +++ b/src/mesa/main/texenvprogram.c @@ -362,6 +362,9 @@ static struct ureg get_temp( struct texenv_fragment_program *p ) exit(1); } + if (bit > p->program->Base.NumTemporaries) + p->program->Base.NumTemporaries = bit; + p->temp_in_use |= 1<<(bit-1); return make_ureg(PROGRAM_TEMPORARY, (bit-1)); } @@ -387,6 +390,9 @@ static struct ureg get_tex_temp( struct texenv_fragment_program *p ) exit(1); } + if (bit > p->program->Base.NumTemporaries) + p->program->Base.NumTemporaries = bit; + p->temp_in_use |= 1<<(bit-1); return make_ureg(PROGRAM_TEMPORARY, (bit-1)); } @@ -1031,6 +1037,7 @@ static void create_new_program(struct state_key *key, GLcontext *ctx, */ struct ureg s = register_input(&p, FRAG_ATTRIB_COL1); emit_arith( &p, FP_OPCODE_ADD, out, WRITEMASK_XYZ, 0, cf, s, undef ); + emit_arith( &p, FP_OPCODE_MOV, out, WRITEMASK_W, 0, cf, undef, undef ); } else if (memcmp(&cf, &out, sizeof(cf)) != 0) { /* Will wind up in here if no texture enabled or a couple of -- 2.30.2