summaryrefslogtreecommitdiffstats
path: root/src/glsl
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2015-10-12 13:47:40 +1000
committerDave Airlie <[email protected]>2015-12-19 11:42:25 +1000
commit1fc39dae22843d6faf3ec43eab90c7d06f9f6f7b (patch)
treef61d718058e543ab2cd91fb4324a9949312b370c /src/glsl
parentf1fb85e5440d8874997eea1df982cf02b6ca2ca2 (diff)
glsl: only update doubles inputs for vertex inputs.
This doesn't apply to other stages. This is only used in the mesa/st code, which needs further fixes. Reviewed-by: Timothy Arceri <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/glsl')
-rw-r--r--src/glsl/ir_set_program_inouts.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/glsl/ir_set_program_inouts.cpp b/src/glsl/ir_set_program_inouts.cpp
index 838b5e7cf08..c9b8a38384f 100644
--- a/src/glsl/ir_set_program_inouts.cpp
+++ b/src/glsl/ir_set_program_inouts.cpp
@@ -115,8 +115,11 @@ mark(struct gl_program *prog, ir_variable *var, int offset, int len,
else
prog->InputsRead |= bitfield;
- if (var->type->without_array()->is_dual_slot_double())
+ /* double inputs read is only for vertex inputs */
+ if (stage == MESA_SHADER_VERTEX &&
+ var->type->without_array()->is_dual_slot_double())
prog->DoubleInputsRead |= bitfield;
+
if (stage == MESA_SHADER_FRAGMENT) {
gl_fragment_program *fprog = (gl_fragment_program *) prog;
fprog->InterpQualifier[idx] =