blob: 2bd26f79bbbaea097ec98d0ed3dee51cbdcc89a8 [file] [log] [blame]
spv.image.frag
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 378
Capability Shader
Capability SampledRect
Capability Sampled1D
Capability SampledCubeArray
Capability SampledBuffer
Capability ImageMSArray
Capability StorageImageExtendedFormats
Capability ImageQuery
Capability StorageImageWriteWithoutFormat
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 132 142 152 248 362 377
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 9 "iv"
Name 15 "i1D"
Name 27 "i2D"
Name 38 "i3D"
Name 45 "iCube"
Name 55 "iCubeArray"
Name 62 "i2DRect"
Name 72 "i1DArray"
Name 82 "i2DArray"
Name 89 "iBuffer"
Name 98 "i2DMS"
Name 108 "i2DMSArray"
Name 127 "v"
Name 132 "ic1D"
Name 142 "ic2D"
Name 152 "ic3D"
Name 229 "ui"
Name 232 "ii1D"
Name 245 "ui2D"
Name 248 "value"
Name 357 "wo2D"
Name 362 "fragData"
Name 377 "ic4D"
Decorate 15(i1D) DescriptorSet 0
Decorate 15(i1D) Binding 0
Decorate 27(i2D) DescriptorSet 0
Decorate 27(i2D) Binding 1
Decorate 38(i3D) DescriptorSet 0
Decorate 38(i3D) Binding 2
Decorate 45(iCube) DescriptorSet 0
Decorate 45(iCube) Binding 3
Decorate 55(iCubeArray) DescriptorSet 0
Decorate 55(iCubeArray) Binding 4
Decorate 62(i2DRect) DescriptorSet 0
Decorate 62(i2DRect) Binding 5
Decorate 72(i1DArray) DescriptorSet 0
Decorate 72(i1DArray) Binding 6
Decorate 82(i2DArray) DescriptorSet 0
Decorate 82(i2DArray) Binding 7
Decorate 89(iBuffer) DescriptorSet 0
Decorate 89(iBuffer) Binding 8
Decorate 98(i2DMS) DescriptorSet 0
Decorate 98(i2DMS) Binding 9
Decorate 108(i2DMSArray) DescriptorSet 0
Decorate 108(i2DMSArray) Binding 10
Decorate 132(ic1D) Flat
Decorate 142(ic2D) Flat
Decorate 152(ic3D) Flat
Decorate 232(ii1D) DescriptorSet 0
Decorate 232(ii1D) Binding 11
Decorate 245(ui2D) DescriptorSet 0
Decorate 245(ui2D) Binding 12
Decorate 248(value) Flat
Decorate 357(wo2D) DescriptorSet 0
Decorate 357(wo2D) Binding 1
Decorate 357(wo2D) NonReadable
Decorate 377(ic4D) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypeVector 6(int) 3
8: TypePointer Function 7(ivec3)
10: 6(int) Constant 0
11: 7(ivec3) ConstantComposite 10 10 10
12: TypeFloat 32
13: TypeImage 12(float) 1D nonsampled format:Rgba32f
14: TypePointer UniformConstant 13
15(i1D): 14(ptr) Variable UniformConstant
18: TypeInt 32 0
19: 18(int) Constant 0
20: TypePointer Function 6(int)
25: TypeImage 12(float) 2D nonsampled format:Rgba32f
26: TypePointer UniformConstant 25
27(i2D): 26(ptr) Variable UniformConstant
29: TypeVector 6(int) 2
36: TypeImage 12(float) 3D nonsampled format:Rgba32f
37: TypePointer UniformConstant 36
38(i3D): 37(ptr) Variable UniformConstant
43: TypeImage 12(float) Cube nonsampled format:Rgba32f
44: TypePointer UniformConstant 43
45(iCube): 44(ptr) Variable UniformConstant
53: TypeImage 12(float) Cube array nonsampled format:Rgba32f
54: TypePointer UniformConstant 53
55(iCubeArray): 54(ptr) Variable UniformConstant
60: TypeImage 12(float) Rect nonsampled format:Rgba32f
61: TypePointer UniformConstant 60
62(i2DRect): 61(ptr) Variable UniformConstant
70: TypeImage 12(float) 1D array nonsampled format:Rgba32f
71: TypePointer UniformConstant 70
72(i1DArray): 71(ptr) Variable UniformConstant
80: TypeImage 12(float) 2D array nonsampled format:Rg16
81: TypePointer UniformConstant 80
82(i2DArray): 81(ptr) Variable UniformConstant
87: TypeImage 12(float) Buffer nonsampled format:Rgba32f
88: TypePointer UniformConstant 87
89(iBuffer): 88(ptr) Variable UniformConstant
96: TypeImage 12(float) 2D multi-sampled nonsampled format:Rgba32f
97: TypePointer UniformConstant 96
98(i2DMS): 97(ptr) Variable UniformConstant
106: TypeImage 12(float) 2D array multi-sampled nonsampled format:Rgba32f
107: TypePointer UniformConstant 106
108(i2DMSArray): 107(ptr) Variable UniformConstant
125: TypeVector 12(float) 4
126: TypePointer Function 125(fvec4)
128: 12(float) Constant 0
129: 125(fvec4) ConstantComposite 128 128 128 128
131: TypePointer Input 6(int)
132(ic1D): 131(ptr) Variable Input
141: TypePointer Input 29(ivec2)
142(ic2D): 141(ptr) Variable Input
151: TypePointer Input 7(ivec3)
152(ic3D): 151(ptr) Variable Input
210: 6(int) Constant 1
216: 6(int) Constant 2
220: 6(int) Constant 3
226: 6(int) Constant 4
228: TypePointer Function 18(int)
230: TypeImage 6(int) 1D nonsampled format:R32i
231: TypePointer UniformConstant 230
232(ii1D): 231(ptr) Variable UniformConstant
234: 6(int) Constant 10
235: TypePointer Image 6(int)
237: 18(int) Constant 1
243: TypeImage 18(int) 2D nonsampled format:R32ui
244: TypePointer UniformConstant 243
245(ui2D): 244(ptr) Variable UniformConstant
247: TypePointer Input 18(int)
248(value): 247(ptr) Variable Input
250: TypePointer Image 18(int)
256: 6(int) Constant 11
270: 6(int) Constant 12
284: 6(int) Constant 13
298: 6(int) Constant 14
312: 6(int) Constant 15
326: 6(int) Constant 16
340: 6(int) Constant 18
341: 6(int) Constant 17
349: 18(int) Constant 19
355: TypeImage 12(float) 2D nonsampled format:Unknown
356: TypePointer UniformConstant 355
357(wo2D): 356(ptr) Variable UniformConstant
361: TypePointer Output 125(fvec4)
362(fragData): 361(ptr) Variable Output
368: TypeBool
375: TypeVector 6(int) 4
376: TypePointer Input 375(ivec4)
377(ic4D): 376(ptr) Variable Input
4(main): 2 Function None 3
5: Label
9(iv): 8(ptr) Variable Function
127(v): 126(ptr) Variable Function
229(ui): 228(ptr) Variable Function
363: 126(ptr) Variable Function
Store 9(iv) 11
16: 13 Load 15(i1D)
17: 6(int) ImageQuerySize 16
21: 20(ptr) AccessChain 9(iv) 19
22: 6(int) Load 21
23: 6(int) IAdd 22 17
24: 20(ptr) AccessChain 9(iv) 19
Store 24 23
28: 25 Load 27(i2D)
30: 29(ivec2) ImageQuerySize 28
31: 7(ivec3) Load 9(iv)
32: 29(ivec2) VectorShuffle 31 31 0 1
33: 29(ivec2) IAdd 32 30
34: 7(ivec3) Load 9(iv)
35: 7(ivec3) VectorShuffle 34 33 3 4 2
Store 9(iv) 35
39: 36 Load 38(i3D)
40: 7(ivec3) ImageQuerySize 39
41: 7(ivec3) Load 9(iv)
42: 7(ivec3) IAdd 41 40
Store 9(iv) 42
46: 43 Load 45(iCube)
47: 29(ivec2) ImageQuerySize 46
48: 7(ivec3) Load 9(iv)
49: 29(ivec2) VectorShuffle 48 48 0 1
50: 29(ivec2) IAdd 49 47
51: 7(ivec3) Load 9(iv)
52: 7(ivec3) VectorShuffle 51 50 3 4 2
Store 9(iv) 52
56: 53 Load 55(iCubeArray)
57: 7(ivec3) ImageQuerySize 56
58: 7(ivec3) Load 9(iv)
59: 7(ivec3) IAdd 58 57
Store 9(iv) 59
63: 60 Load 62(i2DRect)
64: 29(ivec2) ImageQuerySize 63
65: 7(ivec3) Load 9(iv)
66: 29(ivec2) VectorShuffle 65 65 0 1
67: 29(ivec2) IAdd 66 64
68: 7(ivec3) Load 9(iv)
69: 7(ivec3) VectorShuffle 68 67 3 4 2
Store 9(iv) 69
73: 70 Load 72(i1DArray)
74: 29(ivec2) ImageQuerySize 73
75: 7(ivec3) Load 9(iv)
76: 29(ivec2) VectorShuffle 75 75 0 1
77: 29(ivec2) IAdd 76 74
78: 7(ivec3) Load 9(iv)
79: 7(ivec3) VectorShuffle 78 77 3 4 2
Store 9(iv) 79
83: 80 Load 82(i2DArray)
84: 7(ivec3) ImageQuerySize 83
85: 7(ivec3) Load 9(iv)
86: 7(ivec3) IAdd 85 84
Store 9(iv) 86
90: 87 Load 89(iBuffer)
91: 6(int) ImageQuerySize 90
92: 20(ptr) AccessChain 9(iv) 19
93: 6(int) Load 92
94: 6(int) IAdd 93 91
95: 20(ptr) AccessChain 9(iv) 19
Store 95 94
99: 96 Load 98(i2DMS)
100: 29(ivec2) ImageQuerySize 99
101: 7(ivec3) Load 9(iv)
102: 29(ivec2) VectorShuffle 101 101 0 1
103: 29(ivec2) IAdd 102 100
104: 7(ivec3) Load 9(iv)
105: 7(ivec3) VectorShuffle 104 103 3 4 2
Store 9(iv) 105
109: 106 Load 108(i2DMSArray)
110: 7(ivec3) ImageQuerySize 109
111: 7(ivec3) Load 9(iv)
112: 7(ivec3) IAdd 111 110
Store 9(iv) 112
113: 96 Load 98(i2DMS)
114: 6(int) ImageQuerySamples 113
115: 20(ptr) AccessChain 9(iv) 19
116: 6(int) Load 115
117: 6(int) IAdd 116 114
118: 20(ptr) AccessChain 9(iv) 19
Store 118 117
119: 106 Load 108(i2DMSArray)
120: 6(int) ImageQuerySamples 119
121: 20(ptr) AccessChain 9(iv) 19
122: 6(int) Load 121
123: 6(int) IAdd 122 120
124: 20(ptr) AccessChain 9(iv) 19
Store 124 123
Store 127(v) 129
130: 13 Load 15(i1D)
133: 6(int) Load 132(ic1D)
134: 125(fvec4) ImageRead 130 133
135: 125(fvec4) Load 127(v)
136: 125(fvec4) FAdd 135 134
Store 127(v) 136
137: 13 Load 15(i1D)
138: 6(int) Load 132(ic1D)
139: 125(fvec4) Load 127(v)
ImageWrite 137 138 139
140: 25 Load 27(i2D)
143: 29(ivec2) Load 142(ic2D)
144: 125(fvec4) ImageRead 140 143
145: 125(fvec4) Load 127(v)
146: 125(fvec4) FAdd 145 144
Store 127(v) 146
147: 25 Load 27(i2D)
148: 29(ivec2) Load 142(ic2D)
149: 125(fvec4) Load 127(v)
ImageWrite 147 148 149
150: 36 Load 38(i3D)
153: 7(ivec3) Load 152(ic3D)
154: 125(fvec4) ImageRead 150 153
155: 125(fvec4) Load 127(v)
156: 125(fvec4) FAdd 155 154
Store 127(v) 156
157: 36 Load 38(i3D)
158: 7(ivec3) Load 152(ic3D)
159: 125(fvec4) Load 127(v)
ImageWrite 157 158 159
160: 43 Load 45(iCube)
161: 7(ivec3) Load 152(ic3D)
162: 125(fvec4) ImageRead 160 161
163: 125(fvec4) Load 127(v)
164: 125(fvec4) FAdd 163 162
Store 127(v) 164
165: 43 Load 45(iCube)
166: 7(ivec3) Load 152(ic3D)
167: 125(fvec4) Load 127(v)
ImageWrite 165 166 167
168: 53 Load 55(iCubeArray)
169: 7(ivec3) Load 152(ic3D)
170: 125(fvec4) ImageRead 168 169
171: 125(fvec4) Load 127(v)
172: 125(fvec4) FAdd 171 170
Store 127(v) 172
173: 53 Load 55(iCubeArray)
174: 7(ivec3) Load 152(ic3D)
175: 125(fvec4) Load 127(v)
ImageWrite 173 174 175
176: 60 Load 62(i2DRect)
177: 29(ivec2) Load 142(ic2D)
178: 125(fvec4) ImageRead 176 177
179: 125(fvec4) Load 127(v)
180: 125(fvec4) FAdd 179 178
Store 127(v) 180
181: 60 Load 62(i2DRect)
182: 29(ivec2) Load 142(ic2D)
183: 125(fvec4) Load 127(v)
ImageWrite 181 182 183
184: 70 Load 72(i1DArray)
185: 29(ivec2) Load 142(ic2D)
186: 125(fvec4) ImageRead 184 185
187: 125(fvec4) Load 127(v)
188: 125(fvec4) FAdd 187 186
Store 127(v) 188
189: 70 Load 72(i1DArray)
190: 29(ivec2) Load 142(ic2D)
191: 125(fvec4) Load 127(v)
ImageWrite 189 190 191
192: 80 Load 82(i2DArray)
193: 7(ivec3) Load 152(ic3D)
194: 125(fvec4) ImageRead 192 193
195: 125(fvec4) Load 127(v)
196: 125(fvec4) FAdd 195 194
Store 127(v) 196
197: 80 Load 82(i2DArray)
198: 7(ivec3) Load 152(ic3D)
199: 125(fvec4) Load 127(v)
ImageWrite 197 198 199
200: 87 Load 89(iBuffer)
201: 6(int) Load 132(ic1D)
202: 125(fvec4) ImageRead 200 201
203: 125(fvec4) Load 127(v)
204: 125(fvec4) FAdd 203 202
Store 127(v) 204
205: 87 Load 89(iBuffer)
206: 6(int) Load 132(ic1D)
207: 125(fvec4) Load 127(v)
ImageWrite 205 206 207
208: 96 Load 98(i2DMS)
209: 29(ivec2) Load 142(ic2D)
211: 125(fvec4) ImageRead 208 209 Sample 210
212: 125(fvec4) Load 127(v)
213: 125(fvec4) FAdd 212 211
Store 127(v) 213
214: 96 Load 98(i2DMS)
215: 29(ivec2) Load 142(ic2D)
217: 125(fvec4) Load 127(v)
ImageWrite 214 215 217 Sample 216
218: 106 Load 108(i2DMSArray)
219: 7(ivec3) Load 152(ic3D)
221: 125(fvec4) ImageRead 218 219 Sample 220
222: 125(fvec4) Load 127(v)
223: 125(fvec4) FAdd 222 221
Store 127(v) 223
224: 106 Load 108(i2DMSArray)
225: 7(ivec3) Load 152(ic3D)
227: 125(fvec4) Load 127(v)
ImageWrite 224 225 227 Sample 226
Store 229(ui) 19
233: 6(int) Load 132(ic1D)
236: 235(ptr) ImageTexelPointer 232(ii1D) 233 19
238: 6(int) AtomicIAdd 236 237 19 234
239: 20(ptr) AccessChain 9(iv) 19
240: 6(int) Load 239
241: 6(int) IAdd 240 238
242: 20(ptr) AccessChain 9(iv) 19
Store 242 241
246: 29(ivec2) Load 142(ic2D)
249: 18(int) Load 248(value)
251: 250(ptr) ImageTexelPointer 245(ui2D) 246 19
252: 18(int) AtomicIAdd 251 237 19 249
253: 18(int) Load 229(ui)
254: 18(int) IAdd 253 252
Store 229(ui) 254
255: 6(int) Load 132(ic1D)
257: 235(ptr) ImageTexelPointer 232(ii1D) 255 19
258: 6(int) AtomicSMin 257 237 19 256
259: 20(ptr) AccessChain 9(iv) 19
260: 6(int) Load 259
261: 6(int) IAdd 260 258
262: 20(ptr) AccessChain 9(iv) 19
Store 262 261
263: 29(ivec2) Load 142(ic2D)
264: 18(int) Load 248(value)
265: 250(ptr) ImageTexelPointer 245(ui2D) 263 19
266: 18(int) AtomicUMin 265 237 19 264
267: 18(int) Load 229(ui)
268: 18(int) IAdd 267 266
Store 229(ui) 268
269: 6(int) Load 132(ic1D)
271: 235(ptr) ImageTexelPointer 232(ii1D) 269 19
272: 6(int) AtomicSMax 271 237 19 270
273: 20(ptr) AccessChain 9(iv) 19
274: 6(int) Load 273
275: 6(int) IAdd 274 272
276: 20(ptr) AccessChain 9(iv) 19
Store 276 275
277: 29(ivec2) Load 142(ic2D)
278: 18(int) Load 248(value)
279: 250(ptr) ImageTexelPointer 245(ui2D) 277 19
280: 18(int) AtomicUMax 279 237 19 278
281: 18(int) Load 229(ui)
282: 18(int) IAdd 281 280
Store 229(ui) 282
283: 6(int) Load 132(ic1D)
285: 235(ptr) ImageTexelPointer 232(ii1D) 283 19
286: 6(int) AtomicAnd 285 237 19 284
287: 20(ptr) AccessChain 9(iv) 19
288: 6(int) Load 287
289: 6(int) IAdd 288 286
290: 20(ptr) AccessChain 9(iv) 19
Store 290 289
291: 29(ivec2) Load 142(ic2D)
292: 18(int) Load 248(value)
293: 250(ptr) ImageTexelPointer 245(ui2D) 291 19
294: 18(int) AtomicAnd 293 237 19 292
295: 18(int) Load 229(ui)
296: 18(int) IAdd 295 294
Store 229(ui) 296
297: 6(int) Load 132(ic1D)
299: 235(ptr) ImageTexelPointer 232(ii1D) 297 19
300: 6(int) AtomicOr 299 237 19 298
301: 20(ptr) AccessChain 9(iv) 19
302: 6(int) Load 301
303: 6(int) IAdd 302 300
304: 20(ptr) AccessChain 9(iv) 19
Store 304 303
305: 29(ivec2) Load 142(ic2D)
306: 18(int) Load 248(value)
307: 250(ptr) ImageTexelPointer 245(ui2D) 305 19
308: 18(int) AtomicOr 307 237 19 306
309: 18(int) Load 229(ui)
310: 18(int) IAdd 309 308
Store 229(ui) 310
311: 6(int) Load 132(ic1D)
313: 235(ptr) ImageTexelPointer 232(ii1D) 311 19
314: 6(int) AtomicXor 313 237 19 312
315: 20(ptr) AccessChain 9(iv) 19
316: 6(int) Load 315
317: 6(int) IAdd 316 314
318: 20(ptr) AccessChain 9(iv) 19
Store 318 317
319: 29(ivec2) Load 142(ic2D)
320: 18(int) Load 248(value)
321: 250(ptr) ImageTexelPointer 245(ui2D) 319 19
322: 18(int) AtomicXor 321 237 19 320
323: 18(int) Load 229(ui)
324: 18(int) IAdd 323 322
Store 229(ui) 324
325: 6(int) Load 132(ic1D)
327: 235(ptr) ImageTexelPointer 232(ii1D) 325 19
328: 6(int) AtomicExchange 327 237 19 326
329: 20(ptr) AccessChain 9(iv) 19
330: 6(int) Load 329
331: 6(int) IAdd 330 328
332: 20(ptr) AccessChain 9(iv) 19
Store 332 331
333: 29(ivec2) Load 142(ic2D)
334: 18(int) Load 248(value)
335: 250(ptr) ImageTexelPointer 245(ui2D) 333 19
336: 18(int) AtomicExchange 335 237 19 334
337: 18(int) Load 229(ui)
338: 18(int) IAdd 337 336
Store 229(ui) 338
339: 6(int) Load 132(ic1D)
342: 235(ptr) ImageTexelPointer 232(ii1D) 339 19
343: 6(int) AtomicCompareExchange 342 237 19 19 341 340
344: 20(ptr) AccessChain 9(iv) 19
345: 6(int) Load 344
346: 6(int) IAdd 345 343
347: 20(ptr) AccessChain 9(iv) 19
Store 347 346
348: 29(ivec2) Load 142(ic2D)
350: 18(int) Load 248(value)
351: 250(ptr) ImageTexelPointer 245(ui2D) 348 19
352: 18(int) AtomicCompareExchange 351 237 19 19 350 349
353: 18(int) Load 229(ui)
354: 18(int) IAdd 353 352
Store 229(ui) 354
358: 355 Load 357(wo2D)
359: 29(ivec2) Load 142(ic2D)
360: 125(fvec4) Load 127(v)
ImageWrite 358 359 360
364: 18(int) Load 229(ui)
365: 20(ptr) AccessChain 9(iv) 237
366: 6(int) Load 365
367: 18(int) Bitcast 366
369: 368(bool) INotEqual 364 367
SelectionMerge 371 None
BranchConditional 369 370 373
370: Label
372: 125(fvec4) Load 127(v)
Store 363 372
Branch 371
373: Label
Store 363 129
Branch 371
371: Label
374: 125(fvec4) Load 363
Store 362(fragData) 374
Return
FunctionEnd