blob: fa0a01fb4256b1198a02764bf0d351d987443925 (
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
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
|
spv.subgroupVote.comp
// Module Version 10300
// Generated by (magic number): 8000b
// Id's are bound by 216
Capability Shader
Capability Float64
Capability GroupNonUniform
Capability GroupNonUniformVote
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint GLCompute 4 "main" 10 12
ExecutionMode 4 LocalSize 8 8 1
Source GLSL 450
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_vote"
Name 4 "main"
Name 8 "invocation"
Name 10 "gl_SubgroupInvocationID"
Name 12 "gl_SubgroupSize"
Name 24 "Buffers"
MemberName 24(Buffers) 0 "f4"
MemberName 24(Buffers) 1 "i4"
MemberName 24(Buffers) 2 "u4"
MemberName 24(Buffers) 3 "d4"
MemberName 24(Buffers) 4 "r"
Name 27 "data"
Decorate 10(gl_SubgroupInvocationID) RelaxedPrecision
Decorate 10(gl_SubgroupInvocationID) BuiltIn SubgroupLocalInvocationId
Decorate 11 RelaxedPrecision
Decorate 12(gl_SubgroupSize) RelaxedPrecision
Decorate 12(gl_SubgroupSize) BuiltIn SubgroupSize
Decorate 13 RelaxedPrecision
Decorate 14 RelaxedPrecision
Decorate 16 RelaxedPrecision
MemberDecorate 24(Buffers) 0 Offset 0
MemberDecorate 24(Buffers) 1 Offset 16
MemberDecorate 24(Buffers) 2 Offset 32
MemberDecorate 24(Buffers) 3 Offset 64
MemberDecorate 24(Buffers) 4 Offset 96
Decorate 24(Buffers) Block
Decorate 27(data) DescriptorSet 0
Decorate 27(data) Binding 0
Decorate 215 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: TypePointer Function 6(int)
9: TypePointer Input 6(int)
10(gl_SubgroupInvocationID): 9(ptr) Variable Input
12(gl_SubgroupSize): 9(ptr) Variable Input
15: 6(int) Constant 4
17: TypeFloat 32
18: TypeVector 17(float) 4
19: TypeInt 32 1
20: TypeVector 19(int) 4
21: TypeVector 6(int) 4
22: TypeFloat 64
23: TypeVector 22(float64_t) 4
24(Buffers): TypeStruct 18(fvec4) 20(ivec4) 21(ivec4) 23(f64vec4) 19(int)
25: TypeArray 24(Buffers) 15
26: TypePointer StorageBuffer 25
27(data): 26(ptr) Variable StorageBuffer
29: 19(int) Constant 4
30: TypePointer StorageBuffer 19(int)
33: 19(int) Constant 0
34: TypeBool
36: 6(int) Constant 3
41: 6(int) Constant 0
42: TypePointer StorageBuffer 17(float)
46: 19(int) Constant 1
50: TypeVector 17(float) 2
51: TypePointer StorageBuffer 18(fvec4)
59: 19(int) Constant 2
60: TypeVector 17(float) 3
68: 19(int) Constant 3
81: TypeVector 19(int) 2
82: TypePointer StorageBuffer 20(ivec4)
90: TypeVector 19(int) 3
104: TypePointer StorageBuffer 6(int)
111: TypeVector 6(int) 2
112: TypePointer StorageBuffer 21(ivec4)
120: TypeVector 6(int) 3
142: TypePointer StorageBuffer 22(float64_t)
149: TypeVector 22(float64_t) 2
150: TypePointer StorageBuffer 23(f64vec4)
158: TypeVector 22(float64_t) 3
182: 81(ivec2) ConstantComposite 33 33
183: TypeVector 34(bool) 2
194: 90(ivec3) ConstantComposite 33 33 33
195: TypeVector 34(bool) 3
205: 20(ivec4) ConstantComposite 33 33 33 33
206: TypeVector 34(bool) 4
213: 6(int) Constant 8
214: 6(int) Constant 1
215: 120(ivec3) ConstantComposite 213 213 214
4(main): 2 Function None 3
5: Label
8(invocation): 7(ptr) Variable Function
11: 6(int) Load 10(gl_SubgroupInvocationID)
13: 6(int) Load 12(gl_SubgroupSize)
14: 6(int) IAdd 11 13
16: 6(int) UMod 14 15
Store 8(invocation) 16
28: 6(int) Load 8(invocation)
31: 30(ptr) AccessChain 27(data) 28 29
32: 19(int) Load 31
35: 34(bool) SLessThan 32 33
37: 34(bool) GroupNonUniformAll 36 35
SelectionMerge 39 None
BranchConditional 37 38 133
38: Label
40: 6(int) Load 8(invocation)
43: 42(ptr) AccessChain 27(data) 33 33 41
44: 17(float) Load 43
45: 34(bool) GroupNonUniformAllEqual 36 44
47: 19(int) Select 45 46 33
48: 30(ptr) AccessChain 27(data) 40 29
Store 48 47
49: 6(int) Load 8(invocation)
52: 51(ptr) AccessChain 27(data) 46 33
53: 18(fvec4) Load 52
54: 50(fvec2) VectorShuffle 53 53 0 1
55: 34(bool) GroupNonUniformAllEqual 36 54
56: 19(int) Select 55 46 33
57: 30(ptr) AccessChain 27(data) 49 29
Store 57 56
58: 6(int) Load 8(invocation)
61: 51(ptr) AccessChain 27(data) 59 33
62: 18(fvec4) Load 61
63: 60(fvec3) VectorShuffle 62 62 0 1 2
64: 34(bool) GroupNonUniformAllEqual 36 63
65: 19(int) Select 64 46 33
66: 30(ptr) AccessChain 27(data) 58 29
Store 66 65
67: 6(int) Load 8(invocation)
69: 51(ptr) AccessChain 27(data) 68 33
70: 18(fvec4) Load 69
71: 34(bool) GroupNonUniformAllEqual 36 70
72: 19(int) Select 71 46 33
73: 30(ptr) AccessChain 27(data) 67 29
Store 73 72
74: 6(int) Load 8(invocation)
75: 30(ptr) AccessChain 27(data) 33 46 41
76: 19(int) Load 75
77: 34(bool) GroupNonUniformAllEqual 36 76
78: 19(int) Select 77 46 33
79: 30(ptr) AccessChain 27(data) 74 29
Store 79 78
80: 6(int) Load 8(invocation)
83: 82(ptr) AccessChain 27(data) 46 46
84: 20(ivec4) Load 83
85: 81(ivec2) VectorShuffle 84 84 0 1
86: 34(bool) GroupNonUniformAllEqual 36 85
87: 19(int) Select 86 46 33
88: 30(ptr) AccessChain 27(data) 80 29
Store 88 87
89: 6(int) Load 8(invocation)
91: 82(ptr) AccessChain 27(data) 59 46
92: 20(ivec4) Load 91
93: 90(ivec3) VectorShuffle 92 92 0 1 2
94: 34(bool) GroupNonUniformAllEqual 36 93
95: 19(int) Select 94 46 33
96: 30(ptr) AccessChain 27(data) 89 29
Store 96 95
97: 6(int) Load 8(invocation)
98: 82(ptr) AccessChain 27(data) 68 46
99: 20(ivec4) Load 98
100: 34(bool) GroupNonUniformAllEqual 36 99
101: 19(int) Select 100 46 33
102: 30(ptr) AccessChain 27(data) 97 29
Store 102 101
103: 6(int) Load 8(invocation)
105: 104(ptr) AccessChain 27(data) 33 59 41
106: 6(int) Load 105
107: 34(bool) GroupNonUniformAllEqual 36 106
108: 19(int) Select 107 46 33
109: 30(ptr) AccessChain 27(data) 103 29
Store 109 108
110: 6(int) Load 8(invocation)
113: 112(ptr) AccessChain 27(data) 46 59
114: 21(ivec4) Load 113
115: 111(ivec2) VectorShuffle 114 114 0 1
116: 34(bool) GroupNonUniformAllEqual 36 115
117: 19(int) Select 116 46 33
118: 30(ptr) AccessChain 27(data) 110 29
Store 118 117
119: 6(int) Load 8(invocation)
121: 112(ptr) AccessChain 27(data) 59 59
122: 21(ivec4) Load 121
123: 120(ivec3) VectorShuffle 122 122 0 1 2
124: 34(bool) GroupNonUniformAllEqual 36 123
125: 19(int) Select 124 46 33
126: 30(ptr) AccessChain 27(data) 119 29
Store 126 125
127: 6(int) Load 8(invocation)
128: 112(ptr) AccessChain 27(data) 68 59
129: 21(ivec4) Load 128
130: 34(bool) GroupNonUniformAllEqual 36 129
131: 19(int) Select 130 46 33
132: 30(ptr) AccessChain 27(data) 127 29
Store 132 131
Branch 39
133: Label
134: 6(int) Load 8(invocation)
135: 30(ptr) AccessChain 27(data) 134 29
136: 19(int) Load 135
137: 34(bool) SLessThan 136 33
138: 34(bool) GroupNonUniformAny 36 137
SelectionMerge 140 None
BranchConditional 138 139 140
139: Label
141: 6(int) Load 8(invocation)
143: 142(ptr) AccessChain 27(data) 33 68 41
144:22(float64_t) Load 143
145: 34(bool) GroupNonUniformAllEqual 36 144
146: 19(int) Select 145 46 33
147: 30(ptr) AccessChain 27(data) 141 29
Store 147 146
148: 6(int) Load 8(invocation)
151: 150(ptr) AccessChain 27(data) 46 68
152: 23(f64vec4) Load 151
153:149(f64vec2) VectorShuffle 152 152 0 1
154: 34(bool) GroupNonUniformAllEqual 36 153
155: 19(int) Select 154 46 33
156: 30(ptr) AccessChain 27(data) 148 29
Store 156 155
157: 6(int) Load 8(invocation)
159: 150(ptr) AccessChain 27(data) 59 68
160: 23(f64vec4) Load 159
161:158(f64vec3) VectorShuffle 160 160 0 1 2
162: 34(bool) GroupNonUniformAllEqual 36 161
163: 19(int) Select 162 46 33
164: 30(ptr) AccessChain 27(data) 157 29
Store 164 163
165: 6(int) Load 8(invocation)
166: 150(ptr) AccessChain 27(data) 68 68
167: 23(f64vec4) Load 166
168: 34(bool) GroupNonUniformAllEqual 36 167
169: 19(int) Select 168 46 33
170: 30(ptr) AccessChain 27(data) 165 29
Store 170 169
171: 6(int) Load 8(invocation)
172: 30(ptr) AccessChain 27(data) 33 46 41
173: 19(int) Load 172
174: 34(bool) SLessThan 173 33
175: 34(bool) GroupNonUniformAllEqual 36 174
176: 19(int) Select 175 46 33
177: 30(ptr) AccessChain 27(data) 171 29
Store 177 176
178: 6(int) Load 8(invocation)
179: 82(ptr) AccessChain 27(data) 46 46
180: 20(ivec4) Load 179
181: 81(ivec2) VectorShuffle 180 180 0 1
184: 183(bvec2) SLessThan 181 182
185: 34(bool) GroupNonUniformAllEqual 36 184
186: 19(int) Select 185 46 33
187: 81(ivec2) CompositeConstruct 186 186
188: 19(int) CompositeExtract 187 0
189: 30(ptr) AccessChain 27(data) 178 29
Store 189 188
190: 6(int) Load 8(invocation)
191: 82(ptr) AccessChain 27(data) 46 46
192: 20(ivec4) Load 191
193: 90(ivec3) VectorShuffle 192 192 0 1 2
196: 195(bvec3) SLessThan 193 194
197: 34(bool) GroupNonUniformAllEqual 36 196
198: 19(int) Select 197 46 33
199: 90(ivec3) CompositeConstruct 198 198 198
200: 19(int) CompositeExtract 199 0
201: 30(ptr) AccessChain 27(data) 190 29
Store 201 200
202: 6(int) Load 8(invocation)
203: 82(ptr) AccessChain 27(data) 46 46
204: 20(ivec4) Load 203
207: 206(bvec4) SLessThan 204 205
208: 34(bool) GroupNonUniformAllEqual 36 207
209: 19(int) Select 208 46 33
210: 20(ivec4) CompositeConstruct 209 209 209 209
211: 19(int) CompositeExtract 210 0
212: 30(ptr) AccessChain 27(data) 202 29
Store 212 211
Branch 140
140: Label
Branch 39
39: Label
Return
FunctionEnd
|