glsl: don't run intrastage array validation when the interface type is not an array
authorSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Thu, 9 Nov 2017 10:15:03 +0000 (11:15 +0100)
committerSamuel Iglesias Gonsálvez <siglesias@igalia.com>
Mon, 4 Dec 2017 08:32:57 +0000 (09:32 +0100)
commitfa8c1b92b7a8beb9ca2608c9b9bef23232214ae7
treef34fe6f8e0b479ac4178611dff6371ee83ce7be0
parentfc6d55952d08ea03d133c1178871b0d4d289a0cf
glsl: don't run intrastage array validation when the interface type is not an array

We validate that the interface block array type's definition matches.
However, previously, the function could be called if an non-array
interface block has different type definitions -for example, when the
precision qualifier differs in a GLSL ES shader, we would create two
different types-, and it would return invalid as both definitions are
non-arrays.

We fix this by specifying that at least one definition should be an
array to call the validation.

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/compiler/glsl/link_interface_blocks.cpp