blob: 38c7c0928158b163caab15147600e364dff67454 [file] [log] [blame]
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
MemberDecorate 34(MyStructs) 0 Offset 0
MemberDecorate 34(MyStructs) 1 Offset 4
Decorate 34(MyStructs) BufferBlock
Decorate 36(my_structs) DescriptorSet 0
Decorate 36(my_structs) Binding 0
MemberDecorate 65(Output) 0 Offset 0
MemberDecorate 65(Output) 1 Offset 4
MemberDecorate 65(Output) 2 Offset 8
Decorate 65(Output) BufferBlock
Decorate 67(o) DescriptorSet 0
Decorate 67(o) Binding 1
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