TGSI defines TGSI_SEMANTIC_SAMPLEPOS as a 4-component vector with
Z and W set to 0. However, if we ever try to reach thez and w
compoents, we run into trouble because this is implemented as a
swizzle on gl_SamplePosition instead. And gl_SamplePosition only
has x and y.
It seems that recent versions of mesa does just this, causing
shader-compilation errors during dEQP tests.
This fixes regressions in the following tests:
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.singlesample_texture
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.multisample_texture_1
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.multisample_texture_2
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.multisample_texture_4
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.multisample_texture_8
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.singlesample_rbo
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.multisample_rbo_1
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.multisample_rbo_2
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.multisample_rbo_4
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.correctness.multisample_rbo_8
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.distribution.multisample_texture_1
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.distribution.multisample_texture_2
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.distribution.multisample_texture_4
dEQP-GLES31.functional.shaders.sample_variables.sample_pos.distribution.multisample_texture_8
dEQP-GLES31.functional.shaders.multisample_interpolation.interpolate_at_offset.at_sample_position.default_framebuffer
Signed-off-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Jakob Bornecrantz <jakob@collabora.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>