i965/vec4: fix splitting of interleaved attributes
authorIago Toral Quiroga <itoral@igalia.com>
Tue, 21 Nov 2017 10:33:53 +0000 (11:33 +0100)
committerIago Toral Quiroga <itoral@igalia.com>
Fri, 24 Nov 2017 08:24:06 +0000 (09:24 +0100)
commitf1873956dbbde78a9e4fb2df3cd2049891740bba
tree0479c1f5f7c10f11ccc147c699f722f382e73097
parent35548cae93513875dcad9cc88589add5fac7d836
i965/vec4: fix splitting of interleaved attributes

When we split an instruction that reads an uniform value
(vstride 0) we need to respect the vstride on the second
half of the instruction (that is, the second half should
read the same region as the first).

We were doing this already, but we didn't account for
stages that have interleaved input attributes which also
have a vstride of 0 and need the same treatment.

Fixes the following on Haswell:
KHR-GL45.enhanced_layouts.varying_locations
KHR-GL45.enhanced_layouts.varying_array_locations
KHR-GL45.enhanced_layouts.varying_structure_locations

Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Andres Gomez <agomez@igalia.com>
src/intel/compiler/brw_vec4.cpp