Browse Source

only init temp regs to zero if executing NV fragment program

tags/R300_DRIVER_0
Brian Paul 21 years ago
parent
commit
6164ae2b5a
1 changed files with 10 additions and 6 deletions
  1. 10
    6
      src/mesa/swrast/s_nvfragprog.c

+ 10
- 6
src/mesa/swrast/s_nvfragprog.c View File

@@ -478,9 +478,11 @@ init_machine_deriv( GLcontext *ctx,
/* copy existing machine */
_mesa_memcpy(dMachine, machine, sizeof(struct fp_machine));

/* Clear temporary registers */
_mesa_bzero( (void*) machine->Temporaries,
MAX_NV_FRAGMENT_PROGRAM_TEMPS * 4 * sizeof(GLfloat));
if (program->Base.Target == GL_FRAGMENT_PROGRAM_NV) {
/* Clear temporary registers (undefined for ARB_f_p) */
_mesa_bzero( (void*) machine->Temporaries,
MAX_NV_FRAGMENT_PROGRAM_TEMPS * 4 * sizeof(GLfloat));
}

/* Add derivatives */
if (program->InputsRead & (1 << FRAG_ATTRIB_WPOS)) {
@@ -1307,9 +1309,11 @@ init_machine( GLcontext *ctx, struct fp_machine *machine,
if (ctx->FragmentProgram.CallbackEnabled)
inputsRead = ~0;

/* Clear temporary registers */
_mesa_bzero(machine->Temporaries,
MAX_NV_FRAGMENT_PROGRAM_TEMPS * 4 * sizeof(GLfloat));
if (program->Base.Target == GL_FRAGMENT_PROGRAM_NV) {
/* Clear temporary registers (undefined for ARB_f_p) */
_mesa_bzero(machine->Temporaries,
MAX_NV_FRAGMENT_PROGRAM_TEMPS * 4 * sizeof(GLfloat));
}

/* Load input registers */
if (inputsRead & (1 << FRAG_ATTRIB_WPOS)) {

Loading…
Cancel
Save