summaryrefslogtreecommitdiffstats
path: root/src/mesa/shader/prog_parameter_layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/shader/prog_parameter_layout.c')
-rw-r--r--src/mesa/shader/prog_parameter_layout.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mesa/shader/prog_parameter_layout.c b/src/mesa/shader/prog_parameter_layout.c
index f374636f113..4d67eca902f 100644
--- a/src/mesa/shader/prog_parameter_layout.c
+++ b/src/mesa/shader/prog_parameter_layout.c
@@ -170,10 +170,15 @@ _mesa_layout_parameters(struct asm_parser_state *state)
}
+ 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];
@@ -194,6 +199,9 @@ _mesa_layout_parameters(struct asm_parser_state *state)
default:
break;
}
+
+ inst->SrcReg[i].Base.File = p->Type;
+ inst->Base.SrcReg[i].File = p->Type;
}
}