yum-mirror/glslang

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

Zackery Mason-BlaugImplement optional cross-stage check for input with no matching output5fc62e82

main
2.1 KiB110 linesraw
1#version 460
2
3layout(location = 40) out vec4 a0;
4
5layout(location = 1) out ABlock0 {
6    vec4 a1;
7};
8
9out ABlock1 {
10    layout(location = 3) vec4 a2;
11    layout(location = 2) vec4 a3;
12};
13
14layout(location = 5) out vec4 a4[3];
15
16layout(location = 4) out ABlock2 {
17    vec4 a5;
18    layout(location = 8) vec4 a6[2];
19    vec4 a7[2];
20};
21
22struct S {
23    float a[3];
24    float b;
25};
26
27layout(location = 12) out ABlock3 {
28    float a8;
29    layout(location = 15) vec2 a9[2];
30    vec4 a10[2];
31    layout(location = 19) S a11[2]; // consumes 8 locations
32};
33
34layout(location = 27) out float a12[3];
35
36layout(location = 30) out struct AStruct1 {
37    vec2 a13;
38    S a14; // consumes 4 locations
39    mat4 a15;
40} s0;
41
42layout(location = 39) out float a16;
43
44layout(binding = 0) uniform UBO0 {
45    int i;
46} ubo0;
47
48layout(location = 46) out vec4 a17[4];
49
50layout(location = 50) out ABlock4 {
51    vec4 a18[10];
52};
53
54layout(location = 59) out ABlock5 {
55    layout(location = 60) vec2 a19;
56};
57
58// automatically mapped by name
59out Block0 {
60    vec4 a20;
61};
62
63// automatically mapped by name
64out vec2 a21[2];
65
66void main() {
67    if (false) {
68        a0 = vec4(1.0);
69    }
70    a1 = vec4(0.0);
71    a2 = vec4(0.0);
72    a3 = vec4(0.0);
73    a4[0] = vec4(0.0);
74    a4[1] = vec4(0.0);
75    a4[2] = vec4(0.0);
76    a5 = vec4(0.0);
77    a6[0] = vec4(0.0);
78    a6[1] = vec4(0.0);
79    a7[0] = vec4(0.0);
80    a7[1] = vec4(0.0);
81    a8 = 0.0;
82    a9[0].x = 0.0;
83    a9[1].y = 0.0;
84    a10[0] = vec4(0.0);
85    a10[1] = vec4(0.0);
86    a11[0].a[0] = 0.0;
87    a11[0].a[1] = 0.0;
88    a11[0].a[2] = 0.0;
89    a11[0].b = 0.0;
90    a11[1].a[0] = 0.0;
91    a11[1].a[1] = 0.0;
92    a11[1].a[2] = 0.0;
93    a11[1].b = 0.0;
94    a12[0] = 0.0;
95    a12[1] = 0.0;
96    a12[2] = 0.0;
97    s0.a13.y = 0.0;
98    s0.a14.a[0] = 0.0;
99    s0.a14.a[1] = 0.0;
100    s0.a14.a[2] = 0.0;
101    s0.a14.b = 0.0;
102    s0.a15 = mat4(1.0);
103    // a16 intentionally not written to
104    a17[ubo0.i] = vec4(1.0);
105    a18[5] = vec4(1.0);
106    a19 = vec2(0.0);
107    a20 = vec4(1.0);
108    a21[0] = vec2(0.0);
109    a21[1] = vec2(0.0);
110}