glsl: only update doubles inputs for vertex inputs.
authorDave Airlie <airlied@redhat.com>
Mon, 12 Oct 2015 03:47:40 +0000 (13:47 +1000)
committerDave Airlie <airlied@redhat.com>
Sat, 19 Dec 2015 01:42:25 +0000 (11:42 +1000)
This doesn't apply to other stages. This is only
used in the mesa/st code, which needs further fixes.

Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/glsl/ir_set_program_inouts.cpp

index 838b5e7cf0832536af2a051a80047a5c9c321570..c9b8a38384ff924c6841253b669e73b256b12390 100644 (file)
@@ -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] =