| #version 450 |
| |
| #extension GL_EXT_buffer_reference : enable |
| |
| layout(buffer_reference, std430) buffer BlockA { float a; }; |
| layout(buffer_reference, std430) buffer BlockB { uint b; }; |
| |
| layout(set = 0, binding = 0) uniform Handles { |
| BlockA pa; |
| BlockB pb; |
| } handles; |
| |
| float f(BlockA p) { return p.a; } |
| |
| layout(location = 0) out float o; |
| |
| void main() |
| { |
| // BlockB is not BlockA. While the mangled name carried nothing for a reference |
| // type, this matched f(BlockA) and emitted SPIR-V that failed validation. |
| o = f(handles.pb); |
| } |