// In this test the same struct type `S` is used in contexts with different layout constraints. struct S { float[2] a; }; layout(vulkan, push_constant) uniform testPushConstants { float[2] pushConstantArray; }; layout(set = 0, binding = 0) uniform testUniforms { float[2] uboArray; }; void main() { S s1 = S(pushConstantArray); S s2 = S(uboArray); sk_FragColor = (s1 == s2) ? half4(1) : half4(0); }