hlsl.structbuffer.atomics.frag Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: @main(u1; ( temp 4-component vector of float) 0:5 Function Parameters: 0:5 'pos' ( in uint) 0:? Sequence 0:8 AtomicAdd ( temp void) 0:8 indirect index (layout( row_major std430) buffer uint) 0:8 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:8 Constant: 0:8 0 (const uint) 0:8 right-shift ( temp int) 0:8 Constant: 0:8 8 (const int) 0:8 Constant: 0:8 2 (const int) 0:8 Constant: 0:8 1 (const int) 0:9 move second child to first child ( temp uint) 0:9 'u' ( temp uint) 0:9 AtomicAdd ( temp uint) 0:9 indirect index (layout( row_major std430) buffer uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:9 Constant: 0:9 0 (const uint) 0:9 right-shift ( temp int) 0:9 Constant: 0:9 8 (const int) 0:9 Constant: 0:9 2 (const int) 0:9 Constant: 0:9 1 (const int) 0:10 AtomicAnd ( temp void) 0:10 indirect index (layout( row_major std430) buffer uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 right-shift ( temp int) 0:10 Constant: 0:10 8 (const int) 0:10 Constant: 0:10 2 (const int) 0:10 Constant: 0:10 1 (const int) 0:11 move second child to first child ( temp uint) 0:11 'u' ( temp uint) 0:11 AtomicAnd ( temp uint) 0:11 indirect index (layout( row_major std430) buffer uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 right-shift ( temp int) 0:11 Constant: 0:11 8 (const int) 0:11 Constant: 0:11 2 (const int) 0:11 Constant: 0:11 1 (const int) 0:12 move second child to first child ( temp uint) 0:12 'u' ( temp uint) 0:12 Convert int to uint ( temp uint) 0:12 AtomicCompSwap ( temp int) 0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 right-shift ( temp int) 0:12 Constant: 0:12 8 (const int) 0:12 Constant: 0:12 2 (const int) 0:12 Constant: 0:12 1 (const int) 0:12 Constant: 0:12 2 (const int) 0:14 move second child to first child ( temp uint) 0:14 'u' ( temp uint) 0:14 AtomicExchange ( temp uint) 0:14 indirect index (layout( row_major std430) buffer uint) 0:14 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:14 Constant: 0:14 0 (const uint) 0:14 right-shift ( temp int) 0:14 Constant: 0:14 8 (const int) 0:14 Constant: 0:14 2 (const int) 0:14 Constant: 0:14 1 (const int) 0:15 AtomicMax ( temp void) 0:15 indirect index (layout( row_major std430) buffer uint) 0:15 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:15 Constant: 0:15 0 (const uint) 0:15 right-shift ( temp int) 0:15 Constant: 0:15 8 (const int) 0:15 Constant: 0:15 2 (const int) 0:15 Constant: 0:15 1 (const int) 0:16 move second child to first child ( temp uint) 0:16 'u' ( temp uint) 0:16 AtomicMax ( temp uint) 0:16 indirect index (layout( row_major std430) buffer uint) 0:16 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:16 Constant: 0:16 0 (const uint) 0:16 right-shift ( temp int) 0:16 Constant: 0:16 8 (const int) 0:16 Constant: 0:16 2 (const int) 0:16 Constant: 0:16 1 (const int) 0:17 AtomicMin ( temp void) 0:17 indirect index (layout( row_major std430) buffer uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 right-shift ( temp int) 0:17 Constant: 0:17 8 (const int) 0:17 Constant: 0:17 2 (const int) 0:17 Constant: 0:17 1 (const int) 0:18 move second child to first child ( temp uint) 0:18 'u' ( temp uint) 0:18 AtomicMin ( temp uint) 0:18 indirect index (layout( row_major std430) buffer uint) 0:18 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:18 Constant: 0:18 0 (const uint) 0:18 right-shift ( temp int) 0:18 Constant: 0:18 8 (const int) 0:18 Constant: 0:18 2 (const int) 0:18 Constant: 0:18 1 (const int) 0:19 AtomicOr ( temp void) 0:19 indirect index (layout( row_major std430) buffer uint) 0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 right-shift ( temp int) 0:19 Constant: 0:19 8 (const int) 0:19 Constant: 0:19 2 (const int) 0:19 Constant: 0:19 1 (const int) 0:20 move second child to first child ( temp uint) 0:20 'u' ( temp uint) 0:20 AtomicOr ( temp uint) 0:20 indirect index (layout( row_major std430) buffer uint) 0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 right-shift ( temp int) 0:20 Constant: 0:20 8 (const int) 0:20 Constant: 0:20 2 (const int) 0:20 Constant: 0:20 1 (const int) 0:21 AtomicXor ( temp void) 0:21 indirect index (layout( row_major std430) buffer uint) 0:21 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:21 Constant: 0:21 0 (const uint) 0:21 right-shift ( temp int) 0:21 Constant: 0:21 8 (const int) 0:21 Constant: 0:21 2 (const int) 0:21 Constant: 0:21 1 (const int) 0:22 move second child to first child ( temp uint) 0:22 'u' ( temp uint) 0:22 AtomicXor ( temp uint) 0:22 indirect index (layout( row_major std430) buffer uint) 0:22 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:22 Constant: 0:22 0 (const uint) 0:22 right-shift ( temp int) 0:22 Constant: 0:22 8 (const int) 0:22 Constant: 0:22 2 (const int) 0:22 Constant: 0:22 1 (const int) 0:24 Branch: Return with expression 0:24 Construct vec4 ( temp 4-component vector of float) 0:24 Convert uint to float ( temp float) 0:24 indirect index (layout( row_major std430) buffer uint) 0:24 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:24 Constant: 0:24 0 (const uint) 0:24 right-shift ( temp int) 0:24 'pos' ( in uint) 0:24 Constant: 0:24 2 (const int) 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) Linked fragment stage: Shader version: 500 gl_FragCoord origin is upper left 0:? Sequence 0:5 Function Definition: @main(u1; ( temp 4-component vector of float) 0:5 Function Parameters: 0:5 'pos' ( in uint) 0:? Sequence 0:8 AtomicAdd ( temp void) 0:8 indirect index (layout( row_major std430) buffer uint) 0:8 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:8 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:8 Constant: 0:8 0 (const uint) 0:8 right-shift ( temp int) 0:8 Constant: 0:8 8 (const int) 0:8 Constant: 0:8 2 (const int) 0:8 Constant: 0:8 1 (const int) 0:9 move second child to first child ( temp uint) 0:9 'u' ( temp uint) 0:9 AtomicAdd ( temp uint) 0:9 indirect index (layout( row_major std430) buffer uint) 0:9 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:9 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:9 Constant: 0:9 0 (const uint) 0:9 right-shift ( temp int) 0:9 Constant: 0:9 8 (const int) 0:9 Constant: 0:9 2 (const int) 0:9 Constant: 0:9 1 (const int) 0:10 AtomicAnd ( temp void) 0:10 indirect index (layout( row_major std430) buffer uint) 0:10 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:10 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:10 Constant: 0:10 0 (const uint) 0:10 right-shift ( temp int) 0:10 Constant: 0:10 8 (const int) 0:10 Constant: 0:10 2 (const int) 0:10 Constant: 0:10 1 (const int) 0:11 move second child to first child ( temp uint) 0:11 'u' ( temp uint) 0:11 AtomicAnd ( temp uint) 0:11 indirect index (layout( row_major std430) buffer uint) 0:11 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:11 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:11 Constant: 0:11 0 (const uint) 0:11 right-shift ( temp int) 0:11 Constant: 0:11 8 (const int) 0:11 Constant: 0:11 2 (const int) 0:11 Constant: 0:11 1 (const int) 0:12 move second child to first child ( temp uint) 0:12 'u' ( temp uint) 0:12 Convert int to uint ( temp uint) 0:12 AtomicCompSwap ( temp int) 0:12 indirect index (layout( row_major std430) buffer uint) 0:12 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:12 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:12 Constant: 0:12 0 (const uint) 0:12 right-shift ( temp int) 0:12 Constant: 0:12 8 (const int) 0:12 Constant: 0:12 2 (const int) 0:12 Constant: 0:12 1 (const int) 0:12 Constant: 0:12 2 (const int) 0:14 move second child to first child ( temp uint) 0:14 'u' ( temp uint) 0:14 AtomicExchange ( temp uint) 0:14 indirect index (layout( row_major std430) buffer uint) 0:14 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:14 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:14 Constant: 0:14 0 (const uint) 0:14 right-shift ( temp int) 0:14 Constant: 0:14 8 (const int) 0:14 Constant: 0:14 2 (const int) 0:14 Constant: 0:14 1 (const int) 0:15 AtomicMax ( temp void) 0:15 indirect index (layout( row_major std430) buffer uint) 0:15 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:15 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:15 Constant: 0:15 0 (const uint) 0:15 right-shift ( temp int) 0:15 Constant: 0:15 8 (const int) 0:15 Constant: 0:15 2 (const int) 0:15 Constant: 0:15 1 (const int) 0:16 move second child to first child ( temp uint) 0:16 'u' ( temp uint) 0:16 AtomicMax ( temp uint) 0:16 indirect index (layout( row_major std430) buffer uint) 0:16 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:16 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:16 Constant: 0:16 0 (const uint) 0:16 right-shift ( temp int) 0:16 Constant: 0:16 8 (const int) 0:16 Constant: 0:16 2 (const int) 0:16 Constant: 0:16 1 (const int) 0:17 AtomicMin ( temp void) 0:17 indirect index (layout( row_major std430) buffer uint) 0:17 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:17 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:17 Constant: 0:17 0 (const uint) 0:17 right-shift ( temp int) 0:17 Constant: 0:17 8 (const int) 0:17 Constant: 0:17 2 (const int) 0:17 Constant: 0:17 1 (const int) 0:18 move second child to first child ( temp uint) 0:18 'u' ( temp uint) 0:18 AtomicMin ( temp uint) 0:18 indirect index (layout( row_major std430) buffer uint) 0:18 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:18 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:18 Constant: 0:18 0 (const uint) 0:18 right-shift ( temp int) 0:18 Constant: 0:18 8 (const int) 0:18 Constant: 0:18 2 (const int) 0:18 Constant: 0:18 1 (const int) 0:19 AtomicOr ( temp void) 0:19 indirect index (layout( row_major std430) buffer uint) 0:19 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:19 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:19 Constant: 0:19 0 (const uint) 0:19 right-shift ( temp int) 0:19 Constant: 0:19 8 (const int) 0:19 Constant: 0:19 2 (const int) 0:19 Constant: 0:19 1 (const int) 0:20 move second child to first child ( temp uint) 0:20 'u' ( temp uint) 0:20 AtomicOr ( temp uint) 0:20 indirect index (layout( row_major std430) buffer uint) 0:20 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:20 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:20 Constant: 0:20 0 (const uint) 0:20 right-shift ( temp int) 0:20 Constant: 0:20 8 (const int) 0:20 Constant: 0:20 2 (const int) 0:20 Constant: 0:20 1 (const int) 0:21 AtomicXor ( temp void) 0:21 indirect index (layout( row_major std430) buffer uint) 0:21 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:21 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:21 Constant: 0:21 0 (const uint) 0:21 right-shift ( temp int) 0:21 Constant: 0:21 8 (const int) 0:21 Constant: 0:21 2 (const int) 0:21 Constant: 0:21 1 (const int) 0:22 move second child to first child ( temp uint) 0:22 'u' ( temp uint) 0:22 AtomicXor ( temp uint) 0:22 indirect index (layout( row_major std430) buffer uint) 0:22 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:22 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:22 Constant: 0:22 0 (const uint) 0:22 right-shift ( temp int) 0:22 Constant: 0:22 8 (const int) 0:22 Constant: 0:22 2 (const int) 0:22 Constant: 0:22 1 (const int) 0:24 Branch: Return with expression 0:24 Construct vec4 ( temp 4-component vector of float) 0:24 Convert uint to float ( temp float) 0:24 indirect index (layout( row_major std430) buffer uint) 0:24 @data: direct index for structure (layout( row_major std430) buffer implicitly-sized array of uint) 0:24 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:24 Constant: 0:24 0 (const uint) 0:24 right-shift ( temp int) 0:24 'pos' ( in uint) 0:24 Constant: 0:24 2 (const int) 0:5 Function Definition: main( ( temp void) 0:5 Function Parameters: 0:? Sequence 0:5 move second child to first child ( temp uint) 0:? 'pos' ( temp uint) 0:? 'pos' (layout( location=0) flat in uint) 0:5 move second child to first child ( temp 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:5 Function Call: @main(u1; ( temp 4-component vector of float) 0:? 'pos' ( temp uint) 0:? Linker Objects 0:? 'sbuf' (layout( row_major std430) buffer block{layout( row_major std430) buffer implicitly-sized array of uint @data}) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? 'pos' (layout( location=0) flat in uint) // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 87 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint Fragment 4 "main" 80 83 ExecutionMode 4 OriginUpperLeft Source HLSL 500 Name 4 "main" Name 12 "@main(u1;" Name 11 "pos" Name 15 "sbuf" MemberName 15(sbuf) 0 "@data" Name 17 "sbuf" Name 29 "u" Name 78 "pos" Name 80 "pos" Name 83 "@entryPointOutput" Name 84 "param" Decorate 14 ArrayStride 4 MemberDecorate 15(sbuf) 0 Offset 0 Decorate 15(sbuf) BufferBlock Decorate 17(sbuf) DescriptorSet 0 Decorate 80(pos) Flat Decorate 80(pos) Location 0 Decorate 83(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 8: TypeFloat 32 9: TypeVector 8(float) 4 10: TypeFunction 9(fvec4) 7(ptr) 14: TypeRuntimeArray 6(int) 15(sbuf): TypeStruct 14 16: TypePointer Uniform 15(sbuf) 17(sbuf): 16(ptr) Variable Uniform 18: TypeInt 32 1 19: 18(int) Constant 0 20: 18(int) Constant 8 21: 18(int) Constant 2 23: TypePointer Uniform 6(int) 25: 18(int) Constant 1 26: 6(int) Constant 1 27: 6(int) Constant 0 79: TypePointer Input 6(int) 80(pos): 79(ptr) Variable Input 82: TypePointer Output 9(fvec4) 83(@entryPointOutput): 82(ptr) Variable Output 4(main): 2 Function None 3 5: Label 78(pos): 7(ptr) Variable Function 84(param): 7(ptr) Variable Function 81: 6(int) Load 80(pos) Store 78(pos) 81 85: 6(int) Load 78(pos) Store 84(param) 85 86: 9(fvec4) FunctionCall 12(@main(u1;) 84(param) Store 83(@entryPointOutput) 86 Return FunctionEnd 12(@main(u1;): 9(fvec4) Function None 10 11(pos): 7(ptr) FunctionParameter 13: Label 29(u): 7(ptr) Variable Function 22: 18(int) ShiftRightArithmetic 20 21 24: 23(ptr) AccessChain 17(sbuf) 19 22 28: 2 AtomicIAdd 24 26 27 25 30: 18(int) ShiftRightArithmetic 20 21 31: 23(ptr) AccessChain 17(sbuf) 19 30 32: 6(int) AtomicIAdd 31 26 27 25 Store 29(u) 32 33: 18(int) ShiftRightArithmetic 20 21 34: 23(ptr) AccessChain 17(sbuf) 19 33 35: 2 AtomicAnd 34 26 27 25 36: 18(int) ShiftRightArithmetic 20 21 37: 23(ptr) AccessChain 17(sbuf) 19 36 38: 6(int) AtomicAnd 37 26 27 25 Store 29(u) 38 39: 18(int) ShiftRightArithmetic 20 21 40: 23(ptr) AccessChain 17(sbuf) 19 39 41: 18(int) AtomicCompareExchange 40 26 27 27 21 25 42: 6(int) Bitcast 41 Store 29(u) 42 43: 18(int) ShiftRightArithmetic 20 21 44: 23(ptr) AccessChain 17(sbuf) 19 43 45: 6(int) AtomicExchange 44 26 27 25 Store 29(u) 45 46: 18(int) ShiftRightArithmetic 20 21 47: 23(ptr) AccessChain 17(sbuf) 19 46 48: 2 AtomicSMax 47 26 27 25 49: 18(int) ShiftRightArithmetic 20 21 50: 23(ptr) AccessChain 17(sbuf) 19 49 51: 6(int) AtomicUMax 50 26 27 25 Store 29(u) 51 52: 18(int) ShiftRightArithmetic 20 21 53: 23(ptr) AccessChain 17(sbuf) 19 52 54: 2 AtomicSMin 53 26 27 25 55: 18(int) ShiftRightArithmetic 20 21 56: 23(ptr) AccessChain 17(sbuf) 19 55 57: 6(int) AtomicUMin 56 26 27 25 Store 29(u) 57 58: 18(int) ShiftRightArithmetic 20 21 59: 23(ptr) AccessChain 17(sbuf) 19 58 60: 2 AtomicOr 59 26 27 25 61: 18(int) ShiftRightArithmetic 20 21 62: 23(ptr) AccessChain 17(sbuf) 19 61 63: 6(int) AtomicOr 62 26 27 25 Store 29(u) 63 64: 18(int) ShiftRightArithmetic 20 21 65: 23(ptr) AccessChain 17(sbuf) 19 64 66: 2 AtomicXor 65 26 27 25 67: 18(int) ShiftRightArithmetic 20 21 68: 23(ptr) AccessChain 17(sbuf) 19 67 69: 6(int) AtomicXor 68 26 27 25 Store 29(u) 69 70: 6(int) Load 11(pos) 71: 18(int) ShiftRightLogical 70 21 72: 23(ptr) AccessChain 17(sbuf) 19 71 73: 6(int) Load 72 74: 8(float) ConvertUToF 73 75: 9(fvec4) CompositeConstruct 74 74 74 74 ReturnValue 75 FunctionEnd