2 // Module Version 10000
3 // Generated by (magic number): 80002
4 // Id's are bound by 74
7 Capability AtomicStorage
8 1: ExtInstImport "GLSL.std.450"
9 MemoryModel Logical GLSL450
10 EntryPoint GLCompute 4 "main"
11 ExecutionMode 4 LocalSize 1 1 1
26 MemberName 62(dataSSB) 0 "f"
27 MemberName 62(dataSSB) 1 "n_frames_rendered"
32 Decorate 20(counter) Offset 0
33 Decorate 20(counter) Binding 0
34 Decorate 27(countArr) Offset 4
35 Decorate 27(countArr) Binding 0
36 MemberDecorate 62(dataSSB) 0 Restrict
37 MemberDecorate 62(dataSSB) 0 Offset 0
38 MemberDecorate 62(dataSSB) 1 Restrict
39 MemberDecorate 62(dataSSB) 1 Offset 16
40 Decorate 62(dataSSB) BufferBlock
41 Decorate 64(result) DescriptorSet 0
42 Decorate 64(result) Binding 0
46 7: TypePointer AtomicCounter 6(int)
47 8: TypeFunction 6(int) 7(ptr)
50 19: 6(int) Constant 1024
51 20(counter): 7(ptr) Variable AtomicCounter
52 22: TypePointer Function 6(int)
54 25: TypeArray 6(int) 24
55 26: TypePointer AtomicCounter 25
56 27(countArr): 26(ptr) Variable AtomicCounter
58 29: 28(int) Constant 2
59 33: 28(int) Constant 1
60 36: TypePointer Function 28(int)
61 38: TypePointer Workgroup 28(int)
62 39(atomi): 38(ptr) Variable Workgroup
63 40: 28(int) Constant 3
64 43: TypePointer Workgroup 6(int)
65 44(atomu): 43(ptr) Variable Workgroup
66 45(value): 43(ptr) Variable Workgroup
68 53: 28(int) Constant 7
69 57: 6(int) Constant 10
71 61: TypeVector 28(int) 4
72 62(dataSSB): TypeStruct 60(float) 61(ivec4)
73 63: TypePointer Uniform 62(dataSSB)
74 64(result): 63(ptr) Variable Uniform
76 66: TypePointer Uniform 28(int)
77 69: TypeArray 28(int) 14
78 70: TypePointer Private 69
79 71(arrX): 70(ptr) Variable Private
80 72(arrY): 70(ptr) Variable Private
81 73(arrZ): 70(ptr) Variable Private
82 4(main): 2 Function None 3
84 23(val): 22(ptr) Variable Function
86 21: 6(int) FunctionCall 10(func(au1;) 20(counter)
87 30: 7(ptr) AccessChain 27(countArr) 29
88 31: 6(int) AtomicLoad 30 14 15
90 32: 6(int) AtomicIDecrement 20(counter) 14 15
92 35: 6(int) AtomicIIncrement 20(counter) 14 15
95 10(func(au1;): 6(int) Function None 8
96 9(c): 7(ptr) FunctionParameter
98 16: 6(int) AtomicIIncrement 9(c) 14 15
101 12(atoms(): 2 Function None 3
103 37(origi): 36(ptr) Variable Function
104 42(origu): 22(ptr) Variable Function
105 41: 28(int) AtomicIAdd 39(atomi) 14 15 40
107 46: 6(int) Load 45(value)
108 47: 6(int) AtomicAnd 44(atomu) 14 15 46
110 49: 6(int) AtomicOr 44(atomu) 14 15 48
112 50: 6(int) AtomicXor 44(atomu) 14 15 48
114 51: 6(int) Load 45(value)
115 52: 6(int) AtomicUMin 44(atomu) 14 15 51
117 54: 28(int) AtomicSMax 39(atomi) 14 15 53
119 55: 28(int) Load 37(origi)
120 56: 28(int) AtomicExchange 39(atomi) 14 15 55
122 58: 6(int) Load 45(value)
123 59: 6(int) AtomicCompareExchange 44(atomu) 14 15 15 58 57
125 67: 66(ptr) AccessChain 64(result) 33 65
126 68: 28(int) AtomicIAdd 67 14 15 33