blob: a00c45a3f35bc531a922524d4f94c96ee5122700 [file] [log] [blame]
spv.atomicAdd.bufferReference.comp
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 188
Capability Shader
Capability VulkanMemoryModelKHR
Capability VulkanMemoryModelDeviceScopeKHR
Capability PhysicalStorageBufferAddressesEXT
Extension "SPV_KHR_physical_storage_buffer"
Extension "SPV_KHR_storage_buffer_storage_class"
Extension "SPV_KHR_vulkan_memory_model"
1: ExtInstImport "GLSL.std.450"
MemoryModel PhysicalStorageBuffer64EXT VulkanKHR
EntryPoint GLCompute 4 "main" 37 81 133
ExecutionMode 4 LocalSize 1 1 1
Source GLSL 450
SourceExtension "GL_ARB_gpu_shader_int64"
SourceExtension "GL_EXT_buffer_reference"
SourceExtension "GL_KHR_memory_scope_semantics"
SourceExtension "GL_KHR_shader_subgroup_ballot"
SourceExtension "GL_KHR_shader_subgroup_basic"
SourceExtension "GL_KHR_shader_subgroup_shuffle"
Name 4 "main"
Name 8 "pass"
Name 10 "skip"
Name 13 "sharedSkip"
Name 18 "PayloadRef"
MemberName 18(PayloadRef) 0 "x"
Name 20 "payload"
Name 22 "PC"
MemberName 22(PC) 0 "payloadref"
MemberName 22(PC) 1 "guard"
Name 24 "GuardRef"
MemberName 24(GuardRef) 0 "x"
Name 26 ""
Name 34 "globalId"
Name 37 "gl_GlobalInvocationID"
Name 42 "partnerGlobalId"
Name 43 "DIM"
Name 44 "NUM_WORKGROUP_EACH_DIM"
Name 54 "bufferCoord"
Name 66 "partnerBufferCoord"
Name 75 "imageCoord"
Name 77 "partnerImageCoord"
Name 79 "globalId00"
Name 81 "gl_WorkGroupID"
Name 86 "partnerGlobalId00"
Name 95 "bufferCoord00"
Name 104 "partnerBufferCoord00"
Name 113 "imageCoord00"
Name 115 "partnerImageCoord00"
Name 133 "gl_LocalInvocationID"
Name 163 "r"
Name 179 "Fail"
MemberName 179(Fail) 0 "x"
Name 181 "fail"
Decorate 17 ArrayStride 4
MemberDecorate 18(PayloadRef) 0 Offset 0
Decorate 18(PayloadRef) Block
Decorate 20(payload) DecorationAliasedPointerEXT
MemberDecorate 22(PC) 0 Offset 0
MemberDecorate 22(PC) 1 Offset 8
Decorate 22(PC) Block
Decorate 23 ArrayStride 4
MemberDecorate 24(GuardRef) 0 Offset 0
Decorate 24(GuardRef) Block
Decorate 37(gl_GlobalInvocationID) BuiltIn GlobalInvocationId
Decorate 43(DIM) SpecId 0
Decorate 44(NUM_WORKGROUP_EACH_DIM) SpecId 1
Decorate 81(gl_WorkGroupID) BuiltIn WorkgroupId
Decorate 133(gl_LocalInvocationID) BuiltIn LocalInvocationId
Decorate 178 ArrayStride 4
MemberDecorate 179(Fail) 0 Offset 0
Decorate 179(Fail) Block
Decorate 181(fail) DescriptorSet 0
Decorate 181(fail) Binding 2
Decorate 185 SpecId 0
Decorate 186 SpecId 0
Decorate 187 BuiltIn WorkgroupSize
2: TypeVoid
3: TypeFunction 2
6: TypeBool
7: TypePointer Function 6(bool)
9: 6(bool) ConstantTrue
11: 6(bool) ConstantFalse
12: TypePointer Workgroup 6(bool)
13(sharedSkip): 12(ptr) Variable Workgroup
14: TypeInt 32 0
15: 14(int) Constant 2
TypeForwardPointer 16 PhysicalStorageBufferEXT
17: TypeRuntimeArray 14(int)
18(PayloadRef): TypeStruct 17
16: TypePointer PhysicalStorageBufferEXT 18(PayloadRef)
19: TypePointer Function 16(ptr)
TypeForwardPointer 21 PhysicalStorageBufferEXT
22(PC): TypeStruct 16(ptr) 21
23: TypeRuntimeArray 14(int)
24(GuardRef): TypeStruct 23
21: TypePointer PhysicalStorageBufferEXT 24(GuardRef)
25: TypePointer PushConstant 22(PC)
26: 25(ptr) Variable PushConstant
27: TypeInt 32 1
28: 27(int) Constant 0
29: TypePointer PushConstant 16(ptr)
32: TypeVector 27(int) 2
33: TypePointer Function 32(ivec2)
35: TypeVector 14(int) 3
36: TypePointer Input 35(ivec3)
37(gl_GlobalInvocationID): 36(ptr) Variable Input
38: TypeVector 14(int) 2
43(DIM): 27(int) SpecConstant 1
44(NUM_WORKGROUP_EACH_DIM): 27(int) SpecConstant 1
45: 27(int) SpecConstantOp 132 43(DIM) 44(NUM_WORKGROUP_EACH_DIM)
46: 27(int) Constant 1
47: 27(int) SpecConstantOp 130 45 46
48: 32(ivec2) SpecConstantComposite 47 47
53: TypePointer Function 14(int)
55: 14(int) Constant 1
56: TypePointer Function 27(int)
61: 14(int) Constant 0
80: 32(ivec2) SpecConstantComposite 43(DIM) 43(DIM)
81(gl_WorkGroupID): 36(ptr) Variable Input
87: 32(ivec2) SpecConstantComposite 43(DIM) 43(DIM)
88: 27(int) SpecConstantOp 130 44(NUM_WORKGROUP_EACH_DIM) 46
89: 32(ivec2) SpecConstantComposite 88 88
122: TypePointer PhysicalStorageBufferEXT 14(int)
125: 27(int) Constant 31
129: 27(int) Constant 2
130: 27(int) Constant 320
131: 27(int) Constant 8200
132: 14(int) Constant 8520
133(gl_LocalInvocationID): 36(ptr) Variable Input
136: 38(ivec2) ConstantComposite 61 61
137: TypeVector 6(bool) 2
142: TypePointer PushConstant 21(ptr)
147: 27(int) Constant 64
148: 27(int) Constant 8196
149: 14(int) Constant 5
150: 14(int) Constant 8260
155: 27(int) Constant 16386
156: 14(int) Constant 16450
160: 27(int) Constant 16392
161: 14(int) Constant 16712
178: TypeRuntimeArray 14(int)
179(Fail): TypeStruct 178
180: TypePointer StorageBuffer 179(Fail)
181(fail): 180(ptr) Variable StorageBuffer
183: TypePointer StorageBuffer 14(int)
185: 14(int) SpecConstant 1
186: 14(int) SpecConstant 1
187: 35(ivec3) SpecConstantComposite 185 186 55
4(main): 2 Function None 3
5: Label
8(pass): 7(ptr) Variable Function
10(skip): 7(ptr) Variable Function
20(payload): 19(ptr) Variable Function
34(globalId): 33(ptr) Variable Function
42(partnerGlobalId): 33(ptr) Variable Function
54(bufferCoord): 53(ptr) Variable Function
66(partnerBufferCoord): 53(ptr) Variable Function
75(imageCoord): 33(ptr) Variable Function
77(partnerImageCoord): 33(ptr) Variable Function
79(globalId00): 33(ptr) Variable Function
86(partnerGlobalId00): 33(ptr) Variable Function
95(bufferCoord00): 53(ptr) Variable Function
104(partnerBufferCoord00): 53(ptr) Variable Function
113(imageCoord00): 33(ptr) Variable Function
115(partnerImageCoord00): 33(ptr) Variable Function
163(r): 53(ptr) Variable Function
Store 8(pass) 9
Store 10(skip) 11
Store 13(sharedSkip) 11 MakePointerAvailableKHR NonPrivatePointerKHR 15
30: 29(ptr) AccessChain 26 28
31: 16(ptr) Load 30
Store 20(payload) 31
39: 35(ivec3) Load 37(gl_GlobalInvocationID)
40: 38(ivec2) VectorShuffle 39 39 0 1
41: 32(ivec2) Bitcast 40
Store 34(globalId) 41
49: 35(ivec3) Load 37(gl_GlobalInvocationID)
50: 38(ivec2) VectorShuffle 49 49 0 1
51: 32(ivec2) Bitcast 50
52: 32(ivec2) ISub 48 51
Store 42(partnerGlobalId) 52
57: 56(ptr) AccessChain 34(globalId) 55
58: 27(int) Load 57
59: 27(int) IMul 58 43(DIM)
60: 27(int) IMul 59 44(NUM_WORKGROUP_EACH_DIM)
62: 56(ptr) AccessChain 34(globalId) 61
63: 27(int) Load 62
64: 27(int) IAdd 60 63
65: 14(int) Bitcast 64
Store 54(bufferCoord) 65
67: 56(ptr) AccessChain 42(partnerGlobalId) 55
68: 27(int) Load 67
69: 27(int) IMul 68 43(DIM)
70: 27(int) IMul 69 44(NUM_WORKGROUP_EACH_DIM)
71: 56(ptr) AccessChain 42(partnerGlobalId) 61
72: 27(int) Load 71
73: 27(int) IAdd 70 72
74: 14(int) Bitcast 73
Store 66(partnerBufferCoord) 74
76: 32(ivec2) Load 34(globalId)
Store 75(imageCoord) 76
78: 32(ivec2) Load 42(partnerGlobalId)
Store 77(partnerImageCoord) 78
82: 35(ivec3) Load 81(gl_WorkGroupID)
83: 38(ivec2) VectorShuffle 82 82 0 1
84: 32(ivec2) Bitcast 83
85: 32(ivec2) IMul 80 84
Store 79(globalId00) 85
90: 35(ivec3) Load 81(gl_WorkGroupID)
91: 38(ivec2) VectorShuffle 90 90 0 1
92: 32(ivec2) Bitcast 91
93: 32(ivec2) ISub 89 92
94: 32(ivec2) IMul 87 93
Store 86(partnerGlobalId00) 94
96: 56(ptr) AccessChain 79(globalId00) 55
97: 27(int) Load 96
98: 27(int) IMul 97 43(DIM)
99: 27(int) IMul 98 44(NUM_WORKGROUP_EACH_DIM)
100: 56(ptr) AccessChain 79(globalId00) 61
101: 27(int) Load 100
102: 27(int) IAdd 99 101
103: 14(int) Bitcast 102
Store 95(bufferCoord00) 103
105: 56(ptr) AccessChain 86(partnerGlobalId00) 55
106: 27(int) Load 105
107: 27(int) IMul 106 43(DIM)
108: 27(int) IMul 107 44(NUM_WORKGROUP_EACH_DIM)
109: 56(ptr) AccessChain 86(partnerGlobalId00) 61
110: 27(int) Load 109
111: 27(int) IAdd 108 110
112: 14(int) Bitcast 111
Store 104(partnerBufferCoord00) 112
114: 32(ivec2) Load 79(globalId00)
Store 113(imageCoord00) 114
116: 32(ivec2) Load 86(partnerGlobalId00)
Store 115(partnerImageCoord00) 116
117: 16(ptr) Load 20(payload)
118: 14(int) Load 54(bufferCoord)
119: 14(int) Load 54(bufferCoord)
120: 16(ptr) Load 20(payload)
121: 14(int) Load 66(partnerBufferCoord)
123: 122(ptr) AccessChain 120 28 121
124: 14(int) Load 123 Aligned NonPrivatePointerKHR 4
126: 14(int) ShiftRightLogical 124 125
127: 14(int) IAdd 119 126
128: 122(ptr) AccessChain 117 28 118
Store 128 127 Aligned NonPrivatePointerKHR 4
ControlBarrier 15 15 132
134: 35(ivec3) Load 133(gl_LocalInvocationID)
135: 38(ivec2) VectorShuffle 134 134 0 1
138: 137(bvec2) IEqual 135 136
139: 6(bool) All 138
SelectionMerge 141 None
BranchConditional 139 140 141
140: Label
143: 142(ptr) AccessChain 26 46
144: 21(ptr) Load 143
145: 14(int) Load 54(bufferCoord)
146: 122(ptr) AccessChain 144 28 145
AtomicStore 146 46 150 55
151: 142(ptr) AccessChain 26 46
152: 21(ptr) Load 151
153: 14(int) Load 104(partnerBufferCoord00)
154: 122(ptr) AccessChain 152 28 153
157: 14(int) AtomicLoad 154 46 156
158: 6(bool) IEqual 157 61
Store 10(skip) 158
159: 6(bool) Load 10(skip)
Store 13(sharedSkip) 159 MakePointerAvailableKHR NonPrivatePointerKHR 15
Branch 141
141: Label
ControlBarrier 15 15 161
162: 6(bool) Load 13(sharedSkip) MakePointerVisibleKHR NonPrivatePointerKHR 15
Store 10(skip) 162
164: 16(ptr) Load 20(payload)
165: 14(int) Load 66(partnerBufferCoord)
166: 122(ptr) AccessChain 164 28 165
167: 14(int) Load 166 Aligned NonPrivatePointerKHR 4
Store 163(r) 167
168: 6(bool) Load 10(skip)
169: 6(bool) LogicalNot 168
SelectionMerge 171 None
BranchConditional 169 170 171
170: Label
172: 14(int) Load 163(r)
173: 14(int) Load 66(partnerBufferCoord)
174: 6(bool) INotEqual 172 173
Branch 171
171: Label
175: 6(bool) Phi 169 141 174 170
SelectionMerge 177 None
BranchConditional 175 176 177
176: Label
182: 14(int) Load 54(bufferCoord)
184: 183(ptr) AccessChain 181(fail) 28 182
Store 184 55
Branch 177
177: Label
Return
FunctionEnd