1 hlsl.structbuffer.atomics.frag 2 Shader version: 500 3 gl_FragCoord origin is upper left 4 0:? Sequence 5 0:5 Function Definition: @main(u1; ( temp 4-component vector of float) 6 0:5 Function Parameters: 7 0:5 'pos' ( in uint) 8 0:? Sequence 9 0:8 AtomicAdd ( temp uint) 10 0:8 indirect index (layout( row_major std430) buffer uint) 11 0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 12 0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 13 0:8 Constant: 14 0:8 0 (const uint) 15 0:8 right-shift ( temp int) 16 0:8 Constant: 17 0:8 8 (const int) 18 0:8 Constant: 19 0:8 2 (const int) 20 0:8 Constant: 21 0:8 1 (const int) 22 0:9 move second child to first child ( temp uint) 23 0:9 'u' ( temp uint) 24 0:9 AtomicAdd ( temp uint) 25 0:9 indirect index (layout( row_major std430) buffer uint) 26 0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 27 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 28 0:9 Constant: 29 0:9 0 (const uint) 30 0:9 right-shift ( temp int) 31 0:9 Constant: 32 0:9 8 (const int) 33 0:9 Constant: 34 0:9 2 (const int) 35 0:9 Constant: 36 0:9 1 (const int) 37 0:10 AtomicAnd ( temp uint) 38 0:10 indirect index (layout( row_major std430) buffer uint) 39 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 40 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 41 0:10 Constant: 42 0:10 0 (const uint) 43 0:10 right-shift ( temp int) 44 0:10 Constant: 45 0:10 8 (const int) 46 0:10 Constant: 47 0:10 2 (const int) 48 0:10 Constant: 49 0:10 1 (const int) 50 0:11 move second child to first child ( temp uint) 51 0:11 'u' ( temp uint) 52 0:11 AtomicAnd ( temp uint) 53 0:11 indirect index (layout( row_major std430) buffer uint) 54 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 55 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 56 0:11 Constant: 57 0:11 0 (const uint) 58 0:11 right-shift ( temp int) 59 0:11 Constant: 60 0:11 8 (const int) 61 0:11 Constant: 62 0:11 2 (const int) 63 0:11 Constant: 64 0:11 1 (const int) 65 0:12 move second child to first child ( temp uint) 66 0:12 'u' ( temp uint) 67 0:12 Convert int to uint ( temp uint) 68 0:12 AtomicCompSwap ( temp int) 69 0:12 indirect index (layout( row_major std430) buffer uint) 70 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 71 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 72 0:12 Constant: 73 0:12 0 (const uint) 74 0:12 right-shift ( temp int) 75 0:12 Constant: 76 0:12 8 (const int) 77 0:12 Constant: 78 0:12 2 (const int) 79 0:12 Constant: 80 0:12 1 (const int) 81 0:12 Constant: 82 0:12 2 (const int) 83 0:14 move second child to first child ( temp uint) 84 0:14 'u' ( temp uint) 85 0:14 AtomicExchange ( temp uint) 86 0:14 indirect index (layout( row_major std430) buffer uint) 87 0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 88 0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 89 0:14 Constant: 90 0:14 0 (const uint) 91 0:14 right-shift ( temp int) 92 0:14 Constant: 93 0:14 8 (const int) 94 0:14 Constant: 95 0:14 2 (const int) 96 0:14 Constant: 97 0:14 1 (const int) 98 0:15 AtomicMax ( temp uint) 99 0:15 indirect index (layout( row_major std430) buffer uint) 100 0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 101 0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 102 0:15 Constant: 103 0:15 0 (const uint) 104 0:15 right-shift ( temp int) 105 0:15 Constant: 106 0:15 8 (const int) 107 0:15 Constant: 108 0:15 2 (const int) 109 0:15 Constant: 110 0:15 1 (const int) 111 0:16 move second child to first child ( temp uint) 112 0:16 'u' ( temp uint) 113 0:16 AtomicMax ( temp uint) 114 0:16 indirect index (layout( row_major std430) buffer uint) 115 0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 116 0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 117 0:16 Constant: 118 0:16 0 (const uint) 119 0:16 right-shift ( temp int) 120 0:16 Constant: 121 0:16 8 (const int) 122 0:16 Constant: 123 0:16 2 (const int) 124 0:16 Constant: 125 0:16 1 (const int) 126 0:17 AtomicMin ( temp uint) 127 0:17 indirect index (layout( row_major std430) buffer uint) 128 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 129 0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 130 0:17 Constant: 131 0:17 0 (const uint) 132 0:17 right-shift ( temp int) 133 0:17 Constant: 134 0:17 8 (const int) 135 0:17 Constant: 136 0:17 2 (const int) 137 0:17 Constant: 138 0:17 1 (const int) 139 0:18 move second child to first child ( temp uint) 140 0:18 'u' ( temp uint) 141 0:18 AtomicMin ( temp uint) 142 0:18 indirect index (layout( row_major std430) buffer uint) 143 0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 144 0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 145 0:18 Constant: 146 0:18 0 (const uint) 147 0:18 right-shift ( temp int) 148 0:18 Constant: 149 0:18 8 (const int) 150 0:18 Constant: 151 0:18 2 (const int) 152 0:18 Constant: 153 0:18 1 (const int) 154 0:19 AtomicOr ( temp uint) 155 0:19 indirect index (layout( row_major std430) buffer uint) 156 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 157 0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 158 0:19 Constant: 159 0:19 0 (const uint) 160 0:19 right-shift ( temp int) 161 0:19 Constant: 162 0:19 8 (const int) 163 0:19 Constant: 164 0:19 2 (const int) 165 0:19 Constant: 166 0:19 1 (const int) 167 0:20 move second child to first child ( temp uint) 168 0:20 'u' ( temp uint) 169 0:20 AtomicOr ( temp uint) 170 0:20 indirect index (layout( row_major std430) buffer uint) 171 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 172 0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 173 0:20 Constant: 174 0:20 0 (const uint) 175 0:20 right-shift ( temp int) 176 0:20 Constant: 177 0:20 8 (const int) 178 0:20 Constant: 179 0:20 2 (const int) 180 0:20 Constant: 181 0:20 1 (const int) 182 0:21 AtomicXor ( temp uint) 183 0:21 indirect index (layout( row_major std430) buffer uint) 184 0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 185 0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 186 0:21 Constant: 187 0:21 0 (const uint) 188 0:21 right-shift ( temp int) 189 0:21 Constant: 190 0:21 8 (const int) 191 0:21 Constant: 192 0:21 2 (const int) 193 0:21 Constant: 194 0:21 1 (const int) 195 0:22 move second child to first child ( temp uint) 196 0:22 'u' ( temp uint) 197 0:22 AtomicXor ( temp uint) 198 0:22 indirect index (layout( row_major std430) buffer uint) 199 0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 200 0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 201 0:22 Constant: 202 0:22 0 (const uint) 203 0:22 right-shift ( temp int) 204 0:22 Constant: 205 0:22 8 (const int) 206 0:22 Constant: 207 0:22 2 (const int) 208 0:22 Constant: 209 0:22 1 (const int) 210 0:24 Branch: Return with expression 211 0:24 Construct vec4 ( temp 4-component vector of float) 212 0:24 Convert uint to float ( temp float) 213 0:24 indirect index (layout( row_major std430) buffer uint) 214 0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 215 0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 216 0:24 Constant: 217 0:24 0 (const uint) 218 0:24 right-shift ( temp int) 219 0:24 'pos' ( in uint) 220 0:24 Constant: 221 0:24 2 (const int) 222 0:5 Function Definition: main( ( temp void) 223 0:5 Function Parameters: 224 0:? Sequence 225 0:5 move second child to first child ( temp uint) 226 0:? 'pos' ( temp uint) 227 0:? 'pos' (layout( location=0) flat in uint) 228 0:5 move second child to first child ( temp 4-component vector of float) 229 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 230 0:5 Function Call: @main(u1; ( temp 4-component vector of float) 231 0:? 'pos' ( temp uint) 232 0:? Linker Objects 233 0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 234 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 235 0:? 'pos' (layout( location=0) flat in uint) 236 237 238 Linked fragment stage: 239 240 241 Shader version: 500 242 gl_FragCoord origin is upper left 243 0:? Sequence 244 0:5 Function Definition: @main(u1; ( temp 4-component vector of float) 245 0:5 Function Parameters: 246 0:5 'pos' ( in uint) 247 0:? Sequence 248 0:8 AtomicAdd ( temp uint) 249 0:8 indirect index (layout( row_major std430) buffer uint) 250 0:8 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 251 0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 252 0:8 Constant: 253 0:8 0 (const uint) 254 0:8 right-shift ( temp int) 255 0:8 Constant: 256 0:8 8 (const int) 257 0:8 Constant: 258 0:8 2 (const int) 259 0:8 Constant: 260 0:8 1 (const int) 261 0:9 move second child to first child ( temp uint) 262 0:9 'u' ( temp uint) 263 0:9 AtomicAdd ( temp uint) 264 0:9 indirect index (layout( row_major std430) buffer uint) 265 0:9 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 266 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 267 0:9 Constant: 268 0:9 0 (const uint) 269 0:9 right-shift ( temp int) 270 0:9 Constant: 271 0:9 8 (const int) 272 0:9 Constant: 273 0:9 2 (const int) 274 0:9 Constant: 275 0:9 1 (const int) 276 0:10 AtomicAnd ( temp uint) 277 0:10 indirect index (layout( row_major std430) buffer uint) 278 0:10 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 279 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 280 0:10 Constant: 281 0:10 0 (const uint) 282 0:10 right-shift ( temp int) 283 0:10 Constant: 284 0:10 8 (const int) 285 0:10 Constant: 286 0:10 2 (const int) 287 0:10 Constant: 288 0:10 1 (const int) 289 0:11 move second child to first child ( temp uint) 290 0:11 'u' ( temp uint) 291 0:11 AtomicAnd ( temp uint) 292 0:11 indirect index (layout( row_major std430) buffer uint) 293 0:11 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 294 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 295 0:11 Constant: 296 0:11 0 (const uint) 297 0:11 right-shift ( temp int) 298 0:11 Constant: 299 0:11 8 (const int) 300 0:11 Constant: 301 0:11 2 (const int) 302 0:11 Constant: 303 0:11 1 (const int) 304 0:12 move second child to first child ( temp uint) 305 0:12 'u' ( temp uint) 306 0:12 Convert int to uint ( temp uint) 307 0:12 AtomicCompSwap ( temp int) 308 0:12 indirect index (layout( row_major std430) buffer uint) 309 0:12 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 310 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 311 0:12 Constant: 312 0:12 0 (const uint) 313 0:12 right-shift ( temp int) 314 0:12 Constant: 315 0:12 8 (const int) 316 0:12 Constant: 317 0:12 2 (const int) 318 0:12 Constant: 319 0:12 1 (const int) 320 0:12 Constant: 321 0:12 2 (const int) 322 0:14 move second child to first child ( temp uint) 323 0:14 'u' ( temp uint) 324 0:14 AtomicExchange ( temp uint) 325 0:14 indirect index (layout( row_major std430) buffer uint) 326 0:14 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 327 0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 328 0:14 Constant: 329 0:14 0 (const uint) 330 0:14 right-shift ( temp int) 331 0:14 Constant: 332 0:14 8 (const int) 333 0:14 Constant: 334 0:14 2 (const int) 335 0:14 Constant: 336 0:14 1 (const int) 337 0:15 AtomicMax ( temp uint) 338 0:15 indirect index (layout( row_major std430) buffer uint) 339 0:15 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 340 0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 341 0:15 Constant: 342 0:15 0 (const uint) 343 0:15 right-shift ( temp int) 344 0:15 Constant: 345 0:15 8 (const int) 346 0:15 Constant: 347 0:15 2 (const int) 348 0:15 Constant: 349 0:15 1 (const int) 350 0:16 move second child to first child ( temp uint) 351 0:16 'u' ( temp uint) 352 0:16 AtomicMax ( temp uint) 353 0:16 indirect index (layout( row_major std430) buffer uint) 354 0:16 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 355 0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 356 0:16 Constant: 357 0:16 0 (const uint) 358 0:16 right-shift ( temp int) 359 0:16 Constant: 360 0:16 8 (const int) 361 0:16 Constant: 362 0:16 2 (const int) 363 0:16 Constant: 364 0:16 1 (const int) 365 0:17 AtomicMin ( temp uint) 366 0:17 indirect index (layout( row_major std430) buffer uint) 367 0:17 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 368 0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 369 0:17 Constant: 370 0:17 0 (const uint) 371 0:17 right-shift ( temp int) 372 0:17 Constant: 373 0:17 8 (const int) 374 0:17 Constant: 375 0:17 2 (const int) 376 0:17 Constant: 377 0:17 1 (const int) 378 0:18 move second child to first child ( temp uint) 379 0:18 'u' ( temp uint) 380 0:18 AtomicMin ( temp uint) 381 0:18 indirect index (layout( row_major std430) buffer uint) 382 0:18 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 383 0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 384 0:18 Constant: 385 0:18 0 (const uint) 386 0:18 right-shift ( temp int) 387 0:18 Constant: 388 0:18 8 (const int) 389 0:18 Constant: 390 0:18 2 (const int) 391 0:18 Constant: 392 0:18 1 (const int) 393 0:19 AtomicOr ( temp uint) 394 0:19 indirect index (layout( row_major std430) buffer uint) 395 0:19 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 396 0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 397 0:19 Constant: 398 0:19 0 (const uint) 399 0:19 right-shift ( temp int) 400 0:19 Constant: 401 0:19 8 (const int) 402 0:19 Constant: 403 0:19 2 (const int) 404 0:19 Constant: 405 0:19 1 (const int) 406 0:20 move second child to first child ( temp uint) 407 0:20 'u' ( temp uint) 408 0:20 AtomicOr ( temp uint) 409 0:20 indirect index (layout( row_major std430) buffer uint) 410 0:20 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 411 0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 412 0:20 Constant: 413 0:20 0 (const uint) 414 0:20 right-shift ( temp int) 415 0:20 Constant: 416 0:20 8 (const int) 417 0:20 Constant: 418 0:20 2 (const int) 419 0:20 Constant: 420 0:20 1 (const int) 421 0:21 AtomicXor ( temp uint) 422 0:21 indirect index (layout( row_major std430) buffer uint) 423 0:21 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 424 0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 425 0:21 Constant: 426 0:21 0 (const uint) 427 0:21 right-shift ( temp int) 428 0:21 Constant: 429 0:21 8 (const int) 430 0:21 Constant: 431 0:21 2 (const int) 432 0:21 Constant: 433 0:21 1 (const int) 434 0:22 move second child to first child ( temp uint) 435 0:22 'u' ( temp uint) 436 0:22 AtomicXor ( temp uint) 437 0:22 indirect index (layout( row_major std430) buffer uint) 438 0:22 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 439 0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 440 0:22 Constant: 441 0:22 0 (const uint) 442 0:22 right-shift ( temp int) 443 0:22 Constant: 444 0:22 8 (const int) 445 0:22 Constant: 446 0:22 2 (const int) 447 0:22 Constant: 448 0:22 1 (const int) 449 0:24 Branch: Return with expression 450 0:24 Construct vec4 ( temp 4-component vector of float) 451 0:24 Convert uint to float ( temp float) 452 0:24 indirect index (layout( row_major std430) buffer uint) 453 0:24 @data: direct index for structure (layout( row_major std430) buffer unsized 1-element array of uint) 454 0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 455 0:24 Constant: 456 0:24 0 (const uint) 457 0:24 right-shift ( temp int) 458 0:24 'pos' ( in uint) 459 0:24 Constant: 460 0:24 2 (const int) 461 0:5 Function Definition: main( ( temp void) 462 0:5 Function Parameters: 463 0:? Sequence 464 0:5 move second child to first child ( temp uint) 465 0:? 'pos' ( temp uint) 466 0:? 'pos' (layout( location=0) flat in uint) 467 0:5 move second child to first child ( temp 4-component vector of float) 468 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 469 0:5 Function Call: @main(u1; ( temp 4-component vector of float) 470 0:? 'pos' ( temp uint) 471 0:? Linker Objects 472 0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer unsized 1-element array of uint @data}) 473 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 474 0:? 'pos' (layout( location=0) flat in uint) 475 476 Validation failed 477 // Module Version 10000 478 // Generated by (magic number): 80007 479 // Id's are bound by 87 480 481 Capability Shader 482 1: ExtInstImport "GLSL.std.450" 483 MemoryModel Logical GLSL450 484 EntryPoint Fragment 4 "main" 80 83 485 ExecutionMode 4 OriginUpperLeft 486 Source HLSL 500 487 Name 4 "main" 488 Name 12 "@main(u1;" 489 Name 11 "pos" 490 Name 15 "sbuf" 491 MemberName 15(sbuf) 0 "@data" 492 Name 17 "sbuf" 493 Name 29 "u" 494 Name 78 "pos" 495 Name 80 "pos" 496 Name 83 "@entryPointOutput" 497 Name 84 "param" 498 Decorate 14 ArrayStride 4 499 MemberDecorate 15(sbuf) 0 Offset 0 500 Decorate 15(sbuf) BufferBlock 501 Decorate 17(sbuf) DescriptorSet 0 502 Decorate 17(sbuf) Binding 0 503 Decorate 80(pos) Flat 504 Decorate 80(pos) Location 0 505 Decorate 83(@entryPointOutput) Location 0 506 2: TypeVoid 507 3: TypeFunction 2 508 6: TypeInt 32 0 509 7: TypePointer Function 6(int) 510 8: TypeFloat 32 511 9: TypeVector 8(float) 4 512 10: TypeFunction 9(fvec4) 7(ptr) 513 14: TypeRuntimeArray 6(int) 514 15(sbuf): TypeStruct 14 515 16: TypePointer Uniform 15(sbuf) 516 17(sbuf): 16(ptr) Variable Uniform 517 18: TypeInt 32 1 518 19: 18(int) Constant 0 519 20: 18(int) Constant 8 520 21: 18(int) Constant 2 521 23: TypePointer Uniform 6(int) 522 25: 18(int) Constant 1 523 26: 6(int) Constant 1 524 27: 6(int) Constant 0 525 79: TypePointer Input 6(int) 526 80(pos): 79(ptr) Variable Input 527 82: TypePointer Output 9(fvec4) 528 83(@entryPointOutput): 82(ptr) Variable Output 529 4(main): 2 Function None 3 530 5: Label 531 78(pos): 7(ptr) Variable Function 532 84(param): 7(ptr) Variable Function 533 81: 6(int) Load 80(pos) 534 Store 78(pos) 81 535 85: 6(int) Load 78(pos) 536 Store 84(param) 85 537 86: 9(fvec4) FunctionCall 12(@main(u1;) 84(param) 538 Store 83(@entryPointOutput) 86 539 Return 540 FunctionEnd 541 12(@main(u1;): 9(fvec4) Function None 10 542 11(pos): 7(ptr) FunctionParameter 543 13: Label 544 29(u): 7(ptr) Variable Function 545 22: 18(int) ShiftRightArithmetic 20 21 546 24: 23(ptr) AccessChain 17(sbuf) 19 22 547 28: 6(int) AtomicIAdd 24 26 27 25 548 30: 18(int) ShiftRightArithmetic 20 21 549 31: 23(ptr) AccessChain 17(sbuf) 19 30 550 32: 6(int) AtomicIAdd 31 26 27 25 551 Store 29(u) 32 552 33: 18(int) ShiftRightArithmetic 20 21 553 34: 23(ptr) AccessChain 17(sbuf) 19 33 554 35: 6(int) AtomicAnd 34 26 27 25 555 36: 18(int) ShiftRightArithmetic 20 21 556 37: 23(ptr) AccessChain 17(sbuf) 19 36 557 38: 6(int) AtomicAnd 37 26 27 25 558 Store 29(u) 38 559 39: 18(int) ShiftRightArithmetic 20 21 560 40: 23(ptr) AccessChain 17(sbuf) 19 39 561 41: 18(int) AtomicCompareExchange 40 26 27 27 21 25 562 42: 6(int) Bitcast 41 563 Store 29(u) 42 564 43: 18(int) ShiftRightArithmetic 20 21 565 44: 23(ptr) AccessChain 17(sbuf) 19 43 566 45: 6(int) AtomicExchange 44 26 27 25 567 Store 29(u) 45 568 46: 18(int) ShiftRightArithmetic 20 21 569 47: 23(ptr) AccessChain 17(sbuf) 19 46 570 48: 6(int) AtomicUMax 47 26 27 25 571 49: 18(int) ShiftRightArithmetic 20 21 572 50: 23(ptr) AccessChain 17(sbuf) 19 49 573 51: 6(int) AtomicUMax 50 26 27 25 574 Store 29(u) 51 575 52: 18(int) ShiftRightArithmetic 20 21 576 53: 23(ptr) AccessChain 17(sbuf) 19 52 577 54: 6(int) AtomicUMin 53 26 27 25 578 55: 18(int) ShiftRightArithmetic 20 21 579 56: 23(ptr) AccessChain 17(sbuf) 19 55 580 57: 6(int) AtomicUMin 56 26 27 25 581 Store 29(u) 57 582 58: 18(int) ShiftRightArithmetic 20 21 583 59: 23(ptr) AccessChain 17(sbuf) 19 58 584 60: 6(int) AtomicOr 59 26 27 25 585 61: 18(int) ShiftRightArithmetic 20 21 586 62: 23(ptr) AccessChain 17(sbuf) 19 61 587 63: 6(int) AtomicOr 62 26 27 25 588 Store 29(u) 63 589 64: 18(int) ShiftRightArithmetic 20 21 590 65: 23(ptr) AccessChain 17(sbuf) 19 64 591 66: 6(int) AtomicXor 65 26 27 25 592 67: 18(int) ShiftRightArithmetic 20 21 593 68: 23(ptr) AccessChain 17(sbuf) 19 67 594 69: 6(int) AtomicXor 68 26 27 25 595 Store 29(u) 69 596 70: 6(int) Load 11(pos) 597 71: 18(int) ShiftRightLogical 70 21 598 72: 23(ptr) AccessChain 17(sbuf) 19 71 599 73: 6(int) Load 72 600 74: 8(float) ConvertUToF 73 601 75: 9(fvec4) CompositeConstruct 74 74 74 74 602 ReturnValue 75 603 FunctionEnd 604