glslang/Test/spv.bufferhandle8.frag
Arcady Goldmints-Orlov 9caca7a17b Add decorations to structs with buffer references
The containsPhysicalStorageBufferOrArray function now handles struct
types correctly, checking their contents recursively for buffer
reference types. As a result, OpVariables containing structs that have
members that are buffer references now have the appropriate
AliasedPointer or RestrictPointer decoration as per the spec.

Fixes #3188
2023-05-19 11:35:18 -06:00

35 lines
668 B
GLSL

#version 450
#extension GL_EXT_buffer_reference : enable
layout(buffer_reference, std430) buffer blockType {
layout(offset = 0) int a;
layout(offset = 4) int b;
layout(offset = 8) int c;
layout(offset = 12) int d;
layout(offset = 16) int e;
};
layout(std430) buffer t2 {
blockType f;
blockType g;
} t;
layout(std430, buffer_reference) buffer T2 { int x; };
layout(std430, buffer_reference) buffer T1 { int x; };
struct Blah {
T1 t1;
T2 t2;
};
layout(set=0, binding=0) buffer T3 {
Blah Bindings[];
} t3;
void main() {
Blah x = t3.Bindings[2];
t3.Bindings[0] = t3.Bindings[1];
}