yum-mirror/glslang

git clone https://git.yummers.dev/yum-mirror/glslang

Wint3rNightMangle buffer reference types by block name0f99286a

main
542 B22 linesraw
1#version 450
2
3#extension GL_EXT_buffer_reference : enable
4
5layout(buffer_reference, std430) buffer BlockA { float a; };
6layout(buffer_reference, std430) buffer BlockB { uint b; };
7
8layout(set = 0, binding = 0) uniform Handles {
9    BlockA pa;
10    BlockB pb;
11} handles;
12
13float f(BlockA p) { return p.a; }
14
15layout(location = 0) out float o;
16
17void main()
18{
19    // BlockB is not BlockA. While the mangled name carried nothing for a reference
20    // type, this matched f(BlockA) and emitted SPIR-V that failed validation.
21    o = f(handles.pb);
22}