Be more careful about Block decorations on structs
authorJason Ekstrand <jason.ekstrand@intel.com>
Sat, 15 Dec 2018 00:04:39 +0000 (18:04 -0600)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Thu, 20 Dec 2018 09:00:26 +0000 (04:00 -0500)
commita2c7739f06cbc1e6062d8f3234159cb5b181a0fa
treedc13ae017d2fa2d143c6bae1816facfc62b06179
parent882b0b4c3e8836b19e3c8a1912ec8f711f180f29
Be more careful about Block decorations on structs

In spirv/SPIR-V@9701a9f9 we changed the SPIR-V spec to say that
block-decorated structures could not be nested.  This is needed for
sorting out certain variable pointers issues inside a SPIR-V parser.
Unfortunately, the mentioned group of CTS tests violates this rule.
Their %input_buffer type is a struct containing two instances of
%outer_struct and both %input_buffer and %outer_struct are decorated
Block.  Fortunately, only one of the two struct types is actually
required for an input at any given type so we just need to be more
careful about the decorations.

Affects:

dEQP-VK.spirv_assembly.instruction.compute.variable_pointers.complex_types_compute.*

Components: Vulkan

VK-GL-CTS issue: 1518
Change-Id: I87a832fab94a9c06317d20b32afedf16b52ab2f2
(cherry picked from commit 1dbdfe34947fdb3e6d24226a58f02d0b8a515da8)
external/vulkancts/modules/vulkan/spirv_assembly/vktSpvAsmVariablePointersTests.cpp