spv.structCopy.comp // Module Version 10000 // Generated by (magic number): 8000b // Id's are bound by 81 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 EntryPoint GLCompute 4 "main" 24 ExecutionMode 4 LocalSize 512 1 1 Source GLSL 460 Name 4 "main" Name 7 "MyStruct" MemberName 7(MyStruct) 0 "a" MemberName 7(MyStruct) 1 "b" MemberName 7(MyStruct) 2 "c" Name 11 "s" Name 21 "id" Name 24 "gl_GlobalInvocationID" Name 30 "ms" Name 32 "MyStruct" MemberName 32(MyStruct) 0 "a" MemberName 32(MyStruct) 1 "b" MemberName 32(MyStruct) 2 "c" Name 34 "MyStructs" MemberName 34(MyStructs) 0 "count" MemberName 34(MyStructs) 1 "data" Name 36 "my_structs" Name 65 "Output" MemberName 65(Output) 0 "a" MemberName 65(Output) 1 "b" MemberName 65(Output) 2 "c" Name 67 "o" Decorate 24(gl_GlobalInvocationID) BuiltIn GlobalInvocationId MemberDecorate 32(MyStruct) 0 Offset 0 MemberDecorate 32(MyStruct) 1 Offset 4 MemberDecorate 32(MyStruct) 2 Offset 8 Decorate 33 ArrayStride 12 Decorate 34(MyStructs) BufferBlock MemberDecorate 34(MyStructs) 0 Offset 0 MemberDecorate 34(MyStructs) 1 Offset 4 Decorate 36(my_structs) Binding 0 Decorate 36(my_structs) DescriptorSet 0 Decorate 65(Output) BufferBlock MemberDecorate 65(Output) 0 Offset 0 MemberDecorate 65(Output) 1 Offset 4 MemberDecorate 65(Output) 2 Offset 8 Decorate 67(o) Binding 1 Decorate 67(o) DescriptorSet 0 Decorate 80 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7(MyStruct): TypeStruct 6(int) 6(int) 6(int) 8: 6(int) Constant 512 9: TypeArray 7(MyStruct) 8 10: TypePointer Workgroup 9 11(s): 10(ptr) Variable Workgroup 12: TypeInt 32 1 13: 12(int) Constant 0 14: 6(int) Constant 1 15: 6(int) Constant 2 16: 6(int) Constant 3 17: 7(MyStruct) ConstantComposite 14 15 16 18: TypePointer Workgroup 7(MyStruct) 20: TypePointer Function 6(int) 22: TypeVector 6(int) 3 23: TypePointer Input 22(ivec3) 24(gl_GlobalInvocationID): 23(ptr) Variable Input 25: 6(int) Constant 0 26: TypePointer Input 6(int) 29: TypePointer Function 7(MyStruct) 32(MyStruct): TypeStruct 6(int) 6(int) 6(int) 33: TypeRuntimeArray 32(MyStruct) 34(MyStructs): TypeStruct 6(int) 33 35: TypePointer Uniform 34(MyStructs) 36(my_structs): 35(ptr) Variable Uniform 37: TypePointer Uniform 6(int) 40: TypeBool 52: 12(int) Constant 1 54: TypePointer Uniform 32(MyStruct) 62: 12(int) Constant 2 65(Output): TypeStruct 6(int) 6(int) 6(int) 66: TypePointer Uniform 65(Output) 67(o): 66(ptr) Variable Uniform 80: 22(ivec3) ConstantComposite 8 14 14 4(main): 2 Function None 3 5: Label 21(id): 20(ptr) Variable Function 30(ms): 29(ptr) Variable Function 42: 29(ptr) Variable Function 19: 18(ptr) AccessChain 11(s) 13 Store 19 17 27: 26(ptr) AccessChain 24(gl_GlobalInvocationID) 25 28: 6(int) Load 27 Store 21(id) 28 31: 6(int) Load 21(id) 38: 37(ptr) AccessChain 36(my_structs) 13 39: 6(int) Load 38 41: 40(bool) UGreaterThan 31 39 SelectionMerge 44 None BranchConditional 41 43 51 43: Label 45: 6(int) Load 21(id) 46: 37(ptr) AccessChain 36(my_structs) 13 47: 6(int) Load 46 48: 6(int) ISub 45 47 49: 18(ptr) AccessChain 11(s) 48 50: 7(MyStruct) Load 49 Store 42 50 Branch 44 51: Label 53: 6(int) Load 21(id) 55: 54(ptr) AccessChain 36(my_structs) 52 53 56:32(MyStruct) Load 55 57: 6(int) CompositeExtract 56 0 58: 20(ptr) AccessChain 42 13 Store 58 57 59: 6(int) CompositeExtract 56 1 60: 20(ptr) AccessChain 42 52 Store 60 59 61: 6(int) CompositeExtract 56 2 63: 20(ptr) AccessChain 42 62 Store 63 61 Branch 44 44: Label 64: 7(MyStruct) Load 42 Store 30(ms) 64 68: 37(ptr) AccessChain 67(o) 13 69: 20(ptr) AccessChain 30(ms) 13 70: 6(int) Load 69 71: 6(int) AtomicIAdd 68 14 25 70 72: 37(ptr) AccessChain 67(o) 52 73: 20(ptr) AccessChain 30(ms) 52 74: 6(int) Load 73 75: 6(int) AtomicIAdd 72 14 25 74 76: 37(ptr) AccessChain 67(o) 62 77: 20(ptr) AccessChain 30(ms) 62 78: 6(int) Load 77 79: 6(int) AtomicIAdd 76 14 25 78 Return FunctionEnd