1spv.structCopy.comp 2// Module Version 10000 3// Generated by (magic number): 8000b 4// Id's are bound by 81 5 6 Capability Shader 7 1: ExtInstImport "GLSL.std.450" 8 MemoryModel Logical GLSL450 9 EntryPoint GLCompute 4 "main" 24 10 ExecutionMode 4 LocalSize 512 1 1 11 Source GLSL 460 12 Name 4 "main" 13 Name 7 "MyStruct" 14 MemberName 7(MyStruct) 0 "a" 15 MemberName 7(MyStruct) 1 "b" 16 MemberName 7(MyStruct) 2 "c" 17 Name 11 "s" 18 Name 21 "id" 19 Name 24 "gl_GlobalInvocationID" 20 Name 30 "ms" 21 Name 32 "MyStruct" 22 MemberName 32(MyStruct) 0 "a" 23 MemberName 32(MyStruct) 1 "b" 24 MemberName 32(MyStruct) 2 "c" 25 Name 34 "MyStructs" 26 MemberName 34(MyStructs) 0 "count" 27 MemberName 34(MyStructs) 1 "data" 28 Name 36 "my_structs" 29 Name 65 "Output" 30 MemberName 65(Output) 0 "a" 31 MemberName 65(Output) 1 "b" 32 MemberName 65(Output) 2 "c" 33 Name 67 "o" 34 Decorate 24(gl_GlobalInvocationID) BuiltIn GlobalInvocationId 35 MemberDecorate 32(MyStruct) 0 Offset 0 36 MemberDecorate 32(MyStruct) 1 Offset 4 37 MemberDecorate 32(MyStruct) 2 Offset 8 38 Decorate 33 ArrayStride 12 39 Decorate 34(MyStructs) BufferBlock 40 MemberDecorate 34(MyStructs) 0 Offset 0 41 MemberDecorate 34(MyStructs) 1 Offset 4 42 Decorate 36(my_structs) Binding 0 43 Decorate 36(my_structs) DescriptorSet 0 44 Decorate 65(Output) BufferBlock 45 MemberDecorate 65(Output) 0 Offset 0 46 MemberDecorate 65(Output) 1 Offset 4 47 MemberDecorate 65(Output) 2 Offset 8 48 Decorate 67(o) Binding 1 49 Decorate 67(o) DescriptorSet 0 50 Decorate 80 BuiltIn WorkgroupSize 51 2: TypeVoid 52 3: TypeFunction 2 53 6: TypeInt 32 0 54 7(MyStruct): TypeStruct 6(int) 6(int) 6(int) 55 8: 6(int) Constant 512 56 9: TypeArray 7(MyStruct) 8 57 10: TypePointer Workgroup 9 58 11(s): 10(ptr) Variable Workgroup 59 12: TypeInt 32 1 60 13: 12(int) Constant 0 61 14: 6(int) Constant 1 62 15: 6(int) Constant 2 63 16: 6(int) Constant 3 64 17: 7(MyStruct) ConstantComposite 14 15 16 65 18: TypePointer Workgroup 7(MyStruct) 66 20: TypePointer Function 6(int) 67 22: TypeVector 6(int) 3 68 23: TypePointer Input 22(ivec3) 6924(gl_GlobalInvocationID): 23(ptr) Variable Input 70 25: 6(int) Constant 0 71 26: TypePointer Input 6(int) 72 29: TypePointer Function 7(MyStruct) 73 32(MyStruct): TypeStruct 6(int) 6(int) 6(int) 74 33: TypeRuntimeArray 32(MyStruct) 75 34(MyStructs): TypeStruct 6(int) 33 76 35: TypePointer Uniform 34(MyStructs) 77 36(my_structs): 35(ptr) Variable Uniform 78 37: TypePointer Uniform 6(int) 79 40: TypeBool 80 52: 12(int) Constant 1 81 54: TypePointer Uniform 32(MyStruct) 82 62: 12(int) Constant 2 83 65(Output): TypeStruct 6(int) 6(int) 6(int) 84 66: TypePointer Uniform 65(Output) 85 67(o): 66(ptr) Variable Uniform 86 80: 22(ivec3) ConstantComposite 8 14 14 87 4(main): 2 Function None 3 88 5: Label 89 21(id): 20(ptr) Variable Function 90 30(ms): 29(ptr) Variable Function 91 42: 29(ptr) Variable Function 92 19: 18(ptr) AccessChain 11(s) 13 93 Store 19 17 94 27: 26(ptr) AccessChain 24(gl_GlobalInvocationID) 25 95 28: 6(int) Load 27 96 Store 21(id) 28 97 31: 6(int) Load 21(id) 98 38: 37(ptr) AccessChain 36(my_structs) 13 99 39: 6(int) Load 38 100 41: 40(bool) UGreaterThan 31 39 101 SelectionMerge 44 None 102 BranchConditional 41 43 51 103 43: Label 104 45: 6(int) Load 21(id) 105 46: 37(ptr) AccessChain 36(my_structs) 13 106 47: 6(int) Load 46 107 48: 6(int) ISub 45 47 108 49: 18(ptr) AccessChain 11(s) 48 109 50: 7(MyStruct) Load 49 110 Store 42 50 111 Branch 44 112 51: Label 113 53: 6(int) Load 21(id) 114 55: 54(ptr) AccessChain 36(my_structs) 52 53 115 56:32(MyStruct) Load 55 116 57: 6(int) CompositeExtract 56 0 117 58: 20(ptr) AccessChain 42 13 118 Store 58 57 119 59: 6(int) CompositeExtract 56 1 120 60: 20(ptr) AccessChain 42 52 121 Store 60 59 122 61: 6(int) CompositeExtract 56 2 123 63: 20(ptr) AccessChain 42 62 124 Store 63 61 125 Branch 44 126 44: Label 127 64: 7(MyStruct) Load 42 128 Store 30(ms) 64 129 68: 37(ptr) AccessChain 67(o) 13 130 69: 20(ptr) AccessChain 30(ms) 13 131 70: 6(int) Load 69 132 71: 6(int) AtomicIAdd 68 14 25 70 133 72: 37(ptr) AccessChain 67(o) 52 134 73: 20(ptr) AccessChain 30(ms) 52 135 74: 6(int) Load 73 136 75: 6(int) AtomicIAdd 72 14 25 74 137 76: 37(ptr) AccessChain 67(o) 62 138 77: 20(ptr) AccessChain 30(ms) 62 139 78: 6(int) Load 77 140 79: 6(int) AtomicIAdd 76 14 25 78 141 Return 142 FunctionEnd 143