glsl: Fix handling of OPCODE_PRINT for no registers case.

A register file value is unsigned so could never be -1. A
value of 0 also aliased to PROGRAM_TEMPORARY.

If an OPCODE_PRINT has no registers to print, set the register
file value to PROGRAM_UNDEFINED and check for that value when
executing this instruction.
This commit is contained in:
Vinson Lee 2010-04-18 00:11:49 -07:00
parent 4485dd8a3e
commit 4e98116c23
2 changed files with 2 additions and 2 deletions

View file

@ -1096,7 +1096,7 @@ Parse_PrintInstruction(struct parse_state *parseState, struct prog_instruction *
}
}
else {
srcReg->File = 0;
srcReg->File = PROGRAM_UNDEFINED;
}
/* semicolon */

View file

@ -1767,7 +1767,7 @@ _mesa_execute_program(GLcontext * ctx,
break;
case OPCODE_PRINT:
{
if (inst->SrcReg[0].File != -1) {
if (inst->SrcReg[0].File != PROGRAM_UNDEFINED) {
GLfloat a[4];
fetch_vector4(&inst->SrcReg[0], machine, a);
printf("%s%g, %g, %g, %g\n", (const char *) inst->Data,