blob: 7dcda62caed9b8305c4ce3205a1c02858ccdea6a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
spv.1.4.OpCopyLogicalBool.comp
// Module Version 10400
// Generated by (magic number): 8000a
// Id's are bound by 135
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 19 37 53 79 109
ExecutionMode 4 LocalSize 1 1 1
Source GLSL 450
Name 4 "main"
Name 12 "MyStruct"
MemberName 12(MyStruct) 0 "foo"
MemberName 12(MyStruct) 1 "sb"
Name 14 "t"
Name 16 "MyStruct"
MemberName 16(MyStruct) 0 "foo"
MemberName 16(MyStruct) 1 "sb"
Name 17 "SSBO0"
MemberName 17(SSBO0) 0 "a"
Name 19 "inBuf"
Name 35 "SSBO1"
MemberName 35(SSBO1) 0 "b"
Name 37 "outBuf"
Name 50 "MyStruct"
MemberName 50(MyStruct) 0 "foo"
MemberName 50(MyStruct) 1 "sb"
Name 51 "UBO"
MemberName 51(UBO) 0 "c"
Name 53 "uBuf"
Name 72 "Nested"
MemberName 72(Nested) 0 "b"
MemberName 72(Nested) 1 "S"
Name 74 "n"
Name 76 "Nested"
MemberName 76(Nested) 0 "b"
MemberName 76(Nested) 1 "S"
Name 77 "UBON"
MemberName 77(UBON) 0 "N1"
Name 79 "uBufN"
Name 106 "Nested"
MemberName 106(Nested) 0 "b"
MemberName 106(Nested) 1 "S"
Name 107 "SSBO1N"
MemberName 107(SSBO1N) 0 "N2"
Name 109 "outBufN"
Decorate 15 ArrayStride 8
MemberDecorate 16(MyStruct) 0 Offset 0
MemberDecorate 16(MyStruct) 1 Offset 16
MemberDecorate 17(SSBO0) 0 Offset 0
Decorate 17(SSBO0) Block
Decorate 19(inBuf) DescriptorSet 0
Decorate 19(inBuf) Binding 0
MemberDecorate 35(SSBO1) 0 Offset 0
Decorate 35(SSBO1) Block
Decorate 37(outBuf) DescriptorSet 0
Decorate 37(outBuf) Binding 1
Decorate 49 ArrayStride 16
MemberDecorate 50(MyStruct) 0 Offset 0
MemberDecorate 50(MyStruct) 1 Offset 32
MemberDecorate 51(UBO) 0 Offset 0
Decorate 51(UBO) Block
Decorate 53(uBuf) DescriptorSet 0
Decorate 53(uBuf) Binding 2
Decorate 75 ArrayStride 48
MemberDecorate 76(Nested) 0 Offset 0
MemberDecorate 76(Nested) 1 Offset 16
MemberDecorate 77(UBON) 0 Offset 0
Decorate 77(UBON) Block
Decorate 79(uBufN) DescriptorSet 0
Decorate 79(uBufN) Binding 2
Decorate 105 ArrayStride 24
MemberDecorate 106(Nested) 0 Offset 0
MemberDecorate 106(Nested) 1 Offset 8
MemberDecorate 107(SSBO1N) 0 Offset 0
Decorate 107(SSBO1N) Block
Decorate 109(outBufN) DescriptorSet 0
Decorate 109(outBufN) Binding 1
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 2
8: TypeInt 32 0
9: 8(int) Constant 2
10: TypeArray 7(fvec2) 9
11: TypeBool
12(MyStruct): TypeStruct 10 11(bool)
13: TypePointer Function 12(MyStruct)
15: TypeArray 7(fvec2) 9
16(MyStruct): TypeStruct 15 8(int)
17(SSBO0): TypeStruct 16(MyStruct)
18: TypePointer StorageBuffer 17(SSBO0)
19(inBuf): 18(ptr) Variable StorageBuffer
20: TypeInt 32 1
21: 20(int) Constant 0
22: TypePointer StorageBuffer 16(MyStruct)
26: TypePointer Function 10
30: 20(int) Constant 1
31: 8(int) Constant 0
33: TypePointer Function 11(bool)
35(SSBO1): TypeStruct 16(MyStruct)
36: TypePointer StorageBuffer 35(SSBO1)
37(outBuf): 36(ptr) Variable StorageBuffer
41: TypePointer StorageBuffer 15
45: 8(int) Constant 1
47: TypePointer StorageBuffer 8(int)
49: TypeArray 7(fvec2) 9
50(MyStruct): TypeStruct 49 8(int)
51(UBO): TypeStruct 50(MyStruct)
52: TypePointer Uniform 51(UBO)
53(uBuf): 52(ptr) Variable Uniform
54: TypePointer Uniform 50(MyStruct)
71: TypeArray 12(MyStruct) 9
72(Nested): TypeStruct 11(bool) 71
73: TypePointer Function 72(Nested)
75: TypeArray 50(MyStruct) 9
76(Nested): TypeStruct 8(int) 75
77(UBON): TypeStruct 76(Nested)
78: TypePointer Uniform 77(UBON)
79(uBufN): 78(ptr) Variable Uniform
80: TypePointer Uniform 76(Nested)
87: TypePointer Function 71
105: TypeArray 16(MyStruct) 9
106(Nested): TypeStruct 8(int) 105
107(SSBO1N): TypeStruct 106(Nested)
108: TypePointer StorageBuffer 107(SSBO1N)
109(outBufN): 108(ptr) Variable StorageBuffer
111: TypePointer StorageBuffer 106(Nested)
117: TypePointer StorageBuffer 105
4(main): 2 Function None 3
5: Label
14(t): 13(ptr) Variable Function
74(n): 73(ptr) Variable Function
23: 22(ptr) AccessChain 19(inBuf) 21
24:16(MyStruct) Load 23
25: 15 CompositeExtract 24 0
27: 26(ptr) AccessChain 14(t) 21
28: 10 CopyLogical 25
Store 27 28
29: 8(int) CompositeExtract 24 1
32: 11(bool) INotEqual 29 31
34: 33(ptr) AccessChain 14(t) 30
Store 34 32
38:12(MyStruct) Load 14(t)
39: 22(ptr) AccessChain 37(outBuf) 21
40: 10 CompositeExtract 38 0
42: 41(ptr) AccessChain 39 21
43: 15 CopyLogical 40
Store 42 43
44: 11(bool) CompositeExtract 38 1
46: 8(int) Select 44 45 31
48: 47(ptr) AccessChain 39 30
Store 48 46
55: 54(ptr) AccessChain 53(uBuf) 21
56:50(MyStruct) Load 55
57: 49 CompositeExtract 56 0
58: 26(ptr) AccessChain 14(t) 21
59: 10 CopyLogical 57
Store 58 59
60: 8(int) CompositeExtract 56 1
61: 11(bool) INotEqual 60 31
62: 33(ptr) AccessChain 14(t) 30
Store 62 61
63:12(MyStruct) Load 14(t)
64: 22(ptr) AccessChain 37(outBuf) 21
65: 10 CompositeExtract 63 0
66: 41(ptr) AccessChain 64 21
67: 15 CopyLogical 65
Store 66 67
68: 11(bool) CompositeExtract 63 1
69: 8(int) Select 68 45 31
70: 47(ptr) AccessChain 64 30
Store 70 69
81: 80(ptr) AccessChain 79(uBufN) 21
82: 76(Nested) Load 81
83: 8(int) CompositeExtract 82 0
84: 11(bool) INotEqual 83 31
85: 33(ptr) AccessChain 74(n) 21
Store 85 84
86: 75 CompositeExtract 82 1
88: 87(ptr) AccessChain 74(n) 30
89:50(MyStruct) CompositeExtract 86 0
90: 13(ptr) AccessChain 88 21
91: 49 CompositeExtract 89 0
92: 26(ptr) AccessChain 90 21
93: 10 CopyLogical 91
Store 92 93
94: 8(int) CompositeExtract 89 1
95: 11(bool) INotEqual 94 31
96: 33(ptr) AccessChain 90 30
Store 96 95
97:50(MyStruct) CompositeExtract 86 1
98: 13(ptr) AccessChain 88 30
99: 49 CompositeExtract 97 0
100: 26(ptr) AccessChain 98 21
101: 10 CopyLogical 99
Store 100 101
102: 8(int) CompositeExtract 97 1
103: 11(bool) INotEqual 102 31
104: 33(ptr) AccessChain 98 30
Store 104 103
110: 72(Nested) Load 74(n)
112: 111(ptr) AccessChain 109(outBufN) 21
113: 11(bool) CompositeExtract 110 0
114: 8(int) Select 113 45 31
115: 47(ptr) AccessChain 112 21
Store 115 114
116: 71 CompositeExtract 110 1
118: 117(ptr) AccessChain 112 30
119:12(MyStruct) CompositeExtract 116 0
120: 22(ptr) AccessChain 118 21
121: 10 CompositeExtract 119 0
122: 41(ptr) AccessChain 120 21
123: 15 CopyLogical 121
Store 122 123
124: 11(bool) CompositeExtract 119 1
125: 8(int) Select 124 45 31
126: 47(ptr) AccessChain 120 30
Store 126 125
127:12(MyStruct) CompositeExtract 116 1
128: 22(ptr) AccessChain 118 30
129: 10 CompositeExtract 127 0
130: 41(ptr) AccessChain 128 21
131: 15 CopyLogical 129
Store 130 131
132: 11(bool) CompositeExtract 127 1
133: 8(int) Select 132 45 31
134: 47(ptr) AccessChain 128 30
Store 134 133
Return
FunctionEnd
|