Use the type stored in the Parameters array to determine the layout
instead of the type in the instruction register field. Also, update
the instruction register field based on the parameter type.
This makes Google Earth work exactly like with Mesa master.
}
+ if ((inst->SrcReg[i].Base.File <= PROGRAM_VARYING )
+ || (inst->SrcReg[i].Base.File >= PROGRAM_WRITE_ONLY)) {
+ continue;
+ }
+
inst->Base.SrcReg[i] = inst->SrcReg[i].Base;
p = & state->prog->Parameters->Parameters[idx];
- switch (inst->SrcReg[i].Base.File) {
+ switch (p->Type) {
case PROGRAM_CONSTANT: {
const float *const v =
state->prog->Parameters->ParameterValues[idx];
default:
break;
}
+
+ inst->SrcReg[i].Base.File = p->Type;
+ inst->Base.SrcReg[i].File = p->Type;
}
}