summaryrefslogtreecommitdiffstats
path: root/src/glsl/ir_set_program_inouts.cpp
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2015-04-08 14:38:19 +1000
committerDave Airlie <airlied@redhat.com>2015-05-08 10:21:01 +1000
commit023fc344daae3e38f5e250cd0ea36ea674cd84f9 (patch)
treebda7a6d38f651be8d6a3587aec1cca82eaafe890 /src/glsl/ir_set_program_inouts.cpp
parent5d6190e496b4793b5bea667be3f8704135745b9c (diff)
downloadexternal_mesa3d-023fc344daae3e38f5e250cd0ea36ea674cd84f9.zip
external_mesa3d-023fc344daae3e38f5e250cd0ea36ea674cd84f9.tar.gz
external_mesa3d-023fc344daae3e38f5e250cd0ea36ea674cd84f9.tar.bz2
glsl: track which program inputs are doubles
instead of doing the attempts at dual slot handling here, let the backend do it. Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/glsl/ir_set_program_inouts.cpp')
-rw-r--r--src/glsl/ir_set_program_inouts.cpp16
1 files changed, 3 insertions, 13 deletions
diff --git a/src/glsl/ir_set_program_inouts.cpp b/src/glsl/ir_set_program_inouts.cpp
index e877a20..b968a1e 100644
--- a/src/glsl/ir_set_program_inouts.cpp
+++ b/src/glsl/ir_set_program_inouts.cpp
@@ -105,13 +105,10 @@ mark(struct gl_program *prog, ir_variable *var, int offset, int len,
int idx = var->data.location + var->data.index + offset + i;
GLbitfield64 bitfield = BITFIELD64_BIT(idx);
- /* dvec3 and dvec4 take up 2 slots */
- if (dual_slot) {
- idx += i;
- bitfield |= bitfield << 1;
- }
if (var->data.mode == ir_var_shader_in) {
- prog->InputsRead |= bitfield;
+ prog->InputsRead |= bitfield;
+ if (dual_slot)
+ prog->DoubleInputsRead |= bitfield;
if (is_fragment_shader) {
gl_fragment_program *fprog = (gl_fragment_program *) prog;
fprog->InterpQualifier[idx] =
@@ -120,13 +117,6 @@ mark(struct gl_program *prog, ir_variable *var, int offset, int len,
fprog->IsCentroid |= bitfield;
if (var->data.sample)
fprog->IsSample |= bitfield;
-
- /* Set the InterpQualifier of the next slot to the same as the
- * current one, since dvec3 and dvec4 spans 2 slots.
- */
- if (dual_slot)
- fprog->InterpQualifier[idx + 1] =
- (glsl_interp_qualifier) var->data.interpolation;
}
} else if (var->data.mode == ir_var_system_value) {
prog->SystemValuesRead |= bitfield;