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 372 | |
Capability Shader | |
1: ExtInstImport "GLSL.std.450" | |
MemoryModel Logical GLSL450 | |
EntryPoint Fragment 4 "main" 356 | |
ExecutionMode 4 OriginLowerLeft | |
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 356 "fragData" | |
Name 371 "ic4D" | |
Decorate 15(i1D) Binding 0 | |
Decorate 27(i2D) Binding 1 | |
Decorate 38(i3D) Binding 2 | |
Decorate 45(iCube) Binding 3 | |
Decorate 55(iCubeArray) Binding 4 | |
Decorate 62(i2DRect) Binding 5 | |
Decorate 72(i1DArray) Binding 6 | |
Decorate 82(i2DArray) Binding 7 | |
Decorate 89(iBuffer) Binding 8 | |
Decorate 98(i2DMS) Binding 9 | |
Decorate 108(i2DMSArray) Binding 10 | |
Decorate 232(ii1D) Binding 11 | |
Decorate 245(ui2D) Binding 12 | |
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:Rgba32f | |
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 UniformConstant 6(int) | |
132(ic1D): 131(ptr) Variable UniformConstant | |
141: TypePointer UniformConstant 29(ivec2) | |
142(ic2D): 141(ptr) Variable UniformConstant | |
151: TypePointer UniformConstant 7(ivec3) | |
152(ic3D): 151(ptr) Variable UniformConstant | |
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 UniformConstant 18(int) | |
248(value): 247(ptr) Variable UniformConstant | |
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: TypePointer Output 125(fvec4) | |
356(fragData): 355(ptr) Variable Output | |
362: TypeBool | |
369: TypeVector 6(int) 4 | |
370: TypePointer UniformConstant 369(ivec4) | |
371(ic4D): 370(ptr) Variable UniformConstant | |
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 | |
357: 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 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 226 | |
Store 229(ui) 19 | |
233: 6(int) Load 132(ic1D) | |
236: 235(ptr) ImageTexelPointer 232(ii1D) 233 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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 0 | |
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: 18(int) Load 229(ui) | |
359: 20(ptr) AccessChain 9(iv) 237 | |
360: 6(int) Load 359 | |
361: 18(int) Bitcast 360 | |
363: 362(bool) INotEqual 358 361 | |
SelectionMerge 365 None | |
BranchConditional 363 364 367 | |
364: Label | |
366: 125(fvec4) Load 127(v) | |
Store 357 366 | |
Branch 365 | |
367: Label | |
Store 357 129 | |
Branch 365 | |
365: Label | |
368: 125(fvec4) Load 357 | |
Store 356(fragData) 368 | |
Return | |
FunctionEnd |