1spv.memoryScopeSemantics.comp 2// Module Version 10300 3// Generated by (magic number): 8000a 4// Id's are bound by 169 5 6 Capability Shader 7 Capability Int64 8 Capability Int64Atomics 9 Capability StorageImageMultisample 10 Capability VulkanMemoryModelKHR 11 Capability VulkanMemoryModelDeviceScopeKHR 12 Extension "SPV_KHR_vulkan_memory_model" 13 1: ExtInstImport "GLSL.std.450" 14 MemoryModel Logical VulkanKHR 15 EntryPoint GLCompute 4 "main" 16 ExecutionMode 4 LocalSize 1 1 1 17 Source GLSL 450 18 SourceExtension "GL_ARB_gpu_shader_int64" 19 SourceExtension "GL_KHR_memory_scope_semantics" 20 Name 4 "main" 21 Name 8 "origi" 22 Name 10 "atomi" 23 Name 21 "origu" 24 Name 23 "atomu" 25 Name 24 "value" 26 Name 36 "imagei" 27 Name 46 "imageu" 28 Name 66 "BufferU" 29 MemberName 66(BufferU) 0 "x" 30 Name 68 "bufferu" 31 Name 73 "y" 32 Name 78 "BufferI" 33 MemberName 78(BufferI) 0 "x" 34 Name 80 "bufferi" 35 Name 84 "A" 36 MemberName 84(A) 0 "x" 37 Name 85 "BufferJ" 38 MemberName 85(BufferJ) 0 "a" 39 Name 88 "bufferj" 40 Name 99 "BufferK" 41 MemberName 99(BufferK) 0 "x" 42 Name 101 "bufferk" 43 Name 111 "imagej" 44 Name 123 "samp" 45 Name 134 "atomu64" 46 Name 139 "atomi64" 47 Name 144 "BufferL" 48 MemberName 144(BufferL) 0 "x" 49 Name 146 "bufferl" 50 Name 151 "BufferM" 51 MemberName 151(BufferM) 0 "x" 52 Name 153 "bufferm" 53 Name 165 "imageMS" 54 Decorate 36(imagei) DescriptorSet 0 55 Decorate 36(imagei) Binding 1 56 Decorate 46(imageu) DescriptorSet 0 57 Decorate 46(imageu) Binding 0 58 MemberDecorate 66(BufferU) 0 Offset 0 59 Decorate 66(BufferU) Block 60 Decorate 68(bufferu) DescriptorSet 0 61 Decorate 68(bufferu) Binding 2 62 MemberDecorate 78(BufferI) 0 Offset 0 63 Decorate 78(BufferI) Block 64 Decorate 80(bufferi) DescriptorSet 0 65 Decorate 80(bufferi) Binding 3 66 Decorate 83 ArrayStride 4 67 MemberDecorate 84(A) 0 Offset 0 68 MemberDecorate 85(BufferJ) 0 Offset 0 69 Decorate 85(BufferJ) Block 70 Decorate 88(bufferj) DescriptorSet 0 71 Decorate 88(bufferj) Binding 4 72 MemberDecorate 99(BufferK) 0 Offset 0 73 Decorate 99(BufferK) Block 74 Decorate 101(bufferk) DescriptorSet 0 75 Decorate 101(bufferk) Binding 7 76 Decorate 111(imagej) DescriptorSet 0 77 Decorate 111(imagej) Binding 5 78 Decorate 123(samp) DescriptorSet 0 79 Decorate 123(samp) Binding 6 80 MemberDecorate 144(BufferL) 0 Offset 0 81 Decorate 144(BufferL) Block 82 Decorate 146(bufferl) DescriptorSet 0 83 Decorate 146(bufferl) Binding 8 84 MemberDecorate 151(BufferM) 0 Offset 0 85 Decorate 151(BufferM) Block 86 Decorate 153(bufferm) DescriptorSet 0 87 Decorate 153(bufferm) Binding 9 88 Decorate 165(imageMS) DescriptorSet 0 89 Decorate 165(imageMS) Binding 10 90 2: TypeVoid 91 3: TypeFunction 2 92 6: TypeInt 32 1 93 7: TypePointer Function 6(int) 94 9: TypePointer Workgroup 6(int) 95 10(atomi): 9(ptr) Variable Workgroup 96 11: 6(int) Constant 3 97 12: 6(int) Constant 1 98 13: 6(int) Constant 320 99 14: 6(int) Constant 4 100 15: TypeInt 32 0 101 16: 15(int) Constant 5 102 17: 15(int) Constant 0 103 18: 15(int) Constant 324 104 20: TypePointer Function 15(int) 105 22: TypePointer Workgroup 15(int) 106 23(atomu): 22(ptr) Variable Workgroup 107 24(value): 22(ptr) Variable Workgroup 108 26: 15(int) Constant 2 109 28: 6(int) Constant 64 110 29: 6(int) Constant 2 111 30: 15(int) Constant 66 112 33: 15(int) Constant 68 113 34: TypeImage 6(int) 2D nonsampled format:R32i 114 35: TypePointer UniformConstant 34 115 36(imagei): 35(ptr) Variable UniformConstant 116 37: TypeVector 6(int) 2 117 38: 6(int) Constant 0 118 39: 37(ivec2) ConstantComposite 38 38 119 40: TypePointer Image 6(int) 120 42: 15(int) Constant 32768 121 44: TypeImage 15(int) 2D nonsampled format:R32ui 122 45: TypePointer UniformConstant 44 123 46(imageu): 45(ptr) Variable UniformConstant 124 47: 15(int) Constant 3 125 48: TypePointer Image 15(int) 126 51: 15(int) Constant 4 127 53: 15(int) Constant 7 128 58: 6(int) Constant 7 129 62: 15(int) Constant 10 130 64: 15(int) Constant 322 131 66(BufferU): TypeStruct 15(int) 132 67: TypePointer StorageBuffer 66(BufferU) 133 68(bufferu): 67(ptr) Variable StorageBuffer 134 69: TypePointer StorageBuffer 15(int) 135 71: 15(int) Constant 1 136 78(BufferI): TypeStruct 15(int) 137 79: TypePointer StorageBuffer 78(BufferI) 138 80(bufferi): 79(ptr) Variable StorageBuffer 139 83: TypeArray 15(int) 26 140 84(A): TypeStruct 83 141 85(BufferJ): TypeStruct 84(A) 142 86: TypeArray 85(BufferJ) 26 143 87: TypePointer StorageBuffer 86 144 88(bufferj): 87(ptr) Variable StorageBuffer 145 95: TypePointer StorageBuffer 84(A) 146 99(BufferK): TypeStruct 15(int) 147 100: TypePointer Uniform 99(BufferK) 148 101(bufferk): 100(ptr) Variable Uniform 149 102: TypePointer Uniform 15(int) 150 107: TypeVector 6(int) 4 151 109: TypeArray 34 26 152 110: TypePointer UniformConstant 109 153 111(imagej): 110(ptr) Variable UniformConstant 154 117: 107(ivec4) ConstantComposite 38 38 38 38 155 118: TypeFloat 32 156 119: TypeImage 118(float) 2D sampled format:Unknown 157 120: TypeSampledImage 119 158 121: TypeArray 120 26 159 122: TypePointer UniformConstant 121 160 123(samp): 122(ptr) Variable UniformConstant 161 124: TypePointer UniformConstant 120 162 127: TypeVector 118(float) 2 163 128: 118(float) Constant 0 164 129: 127(fvec2) ConstantComposite 128 128 165 130: TypeVector 118(float) 4 166 132: TypeInt 64 0 167 133: TypePointer Workgroup 132(int64_t) 168 134(atomu64): 133(ptr) Variable Workgroup 169 135:132(int64_t) Constant 7 0 170 137: TypeInt 64 1 171 138: TypePointer Workgroup 137(int64_t) 172 139(atomi64): 138(ptr) Variable Workgroup 173 140:137(int64_t) Constant 10 0 174 144(BufferL): TypeStruct 15(int) 175 145: TypePointer StorageBuffer 144(BufferL) 176 146(bufferl): 145(ptr) Variable StorageBuffer 177 151(BufferM): TypeStruct 15(int) 178 152: TypePointer StorageBuffer 151(BufferM) 179 153(bufferm): 152(ptr) Variable StorageBuffer 180 161: 6(int) Constant 32768 181 163: TypeImage 6(int) 2D multi-sampled nonsampled format:R32i 182 164: TypePointer UniformConstant 163 183 165(imageMS): 164(ptr) Variable UniformConstant 184 167: 6(int) Constant 4294967289 185 4(main): 2 Function None 3 186 5: Label 187 8(origi): 7(ptr) Variable Function 188 21(origu): 20(ptr) Variable Function 189 73(y): 20(ptr) Variable Function 190 19: 6(int) AtomicIAdd 10(atomi) 12 18 11 191 Store 8(origi) 19 192 25: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 193 27: 15(int) AtomicAnd 23(atomu) 16 17 25 194 Store 21(origu) 27 195 31: 6(int) AtomicLoad 10(atomi) 12 30 196 Store 8(origi) 31 197 32: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 198 AtomicStore 23(atomu) 12 33 32 199 41: 40(ptr) ImageTexelPointer 36(imagei) 39 17 200 43: 6(int) AtomicLoad 41 12 30 201 Store 8(origi) 43 202 49: 48(ptr) ImageTexelPointer 46(imageu) 39 17 203 50: 15(int) AtomicIAdd 49 12 30 47 204 Store 21(origu) 50 205 52: 48(ptr) ImageTexelPointer 46(imageu) 39 17 206 AtomicStore 52 12 33 51 207 54: 15(int) AtomicOr 23(atomu) 12 17 53 208 Store 21(origu) 54 209 55: 15(int) AtomicXor 23(atomu) 12 17 53 210 Store 21(origu) 55 211 56: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 212 57: 15(int) AtomicUMin 23(atomu) 12 17 56 213 Store 21(origu) 57 214 59: 6(int) AtomicSMax 10(atomi) 12 17 58 215 Store 8(origi) 59 216 60: 6(int) Load 8(origi) 217 61: 6(int) AtomicExchange 10(atomi) 12 17 60 218 Store 8(origi) 61 219 63: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 220 65: 15(int) AtomicCompareExchange 23(atomu) 12 64 64 63 62 221 Store 21(origu) 65 222 70: 69(ptr) AccessChain 68(bufferu) 38 223 72: 15(int) AtomicIAdd 70 12 18 71 224 MemoryBarrier 26 18 225 ControlBarrier 26 26 64 226 ControlBarrier 26 26 17 227 74: 69(ptr) AccessChain 68(bufferu) 38 228 75: 15(int) Load 74 MakePointerVisibleKHR NonPrivatePointerKHR 26 229 Store 73(y) 75 230 76: 15(int) Load 73(y) 231 77: 69(ptr) AccessChain 68(bufferu) 38 232 Store 77 76 MakePointerAvailableKHR NonPrivatePointerKHR 26 233 81: 69(ptr) AccessChain 80(bufferi) 38 234 82: 15(int) Load 81 MakePointerVisibleKHR NonPrivatePointerKHR 16 235 Store 73(y) 82 236 89: 69(ptr) AccessChain 88(bufferj) 38 38 38 12 237 90: 15(int) Load 89 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 238 Store 73(y) 90 239 91: 15(int) Load 73(y) 240 92: 69(ptr) AccessChain 80(bufferi) 38 241 Store 92 91 MakePointerAvailableKHR NonPrivatePointerKHR 16 242 93: 15(int) Load 73(y) 243 94: 69(ptr) AccessChain 88(bufferj) 38 38 38 12 244 Store 94 93 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16 245 96: 95(ptr) AccessChain 88(bufferj) 12 38 246 97: 84(A) Load 96 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 247 98: 95(ptr) AccessChain 88(bufferj) 38 38 248 Store 98 97 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16 249 103: 102(ptr) AccessChain 101(bufferk) 38 250 104: 15(int) Load 103 NonPrivatePointerKHR 251 105: 69(ptr) AccessChain 80(bufferi) 38 252 Store 105 104 MakePointerAvailableKHR NonPrivatePointerKHR 16 253 106: 34 Load 36(imagei) 254 108: 107(ivec4) ImageRead 106 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16 255 112: 35(ptr) AccessChain 111(imagej) 38 256 113: 34 Load 112 257 114: 107(ivec4) ImageRead 113 39 NonPrivateTexelKHR 258 115: 35(ptr) AccessChain 111(imagej) 12 259 116: 34 Load 115 260 ImageWrite 116 39 117 NonPrivateTexelKHR 261 125: 124(ptr) AccessChain 123(samp) 38 262 126: 120 Load 125 263 131: 130(fvec4) ImageSampleExplicitLod 126 129 Lod NonPrivateTexelKHR 128 264 136:132(int64_t) AtomicUMax 134(atomu64) 12 17 135 265 Store 134(atomu64) 136 MakePointerAvailableKHR NonPrivatePointerKHR 26 266 141:132(int64_t) Load 134(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26 267 142:137(int64_t) Bitcast 141 268 143:137(int64_t) AtomicCompareExchange 139(atomi64) 12 64 64 142 140 269 147: 69(ptr) AccessChain 146(bufferl) 38 270 148: 15(int) Load 147 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 271 Store 73(y) 148 272 149: 69(ptr) AccessChain 146(bufferl) 38 273 150: 15(int) AtomicIAdd 149 16 42 71 274 154: 69(ptr) AccessChain 153(bufferm) 38 275 155: 15(int) AtomicOr 154 16 42 26 276 156: 40(ptr) ImageTexelPointer 36(imagei) 39 17 277 157: 6(int) AtomicIAdd 156 16 42 11 278 158: 69(ptr) AccessChain 68(bufferu) 38 279 159: 15(int) AtomicIAdd 158 12 17 51 280 160: 69(ptr) AccessChain 68(bufferu) 38 281 162: 15(int) AtomicIAdd 160 12 42 16 282 166: 40(ptr) ImageTexelPointer 165(imageMS) 39 12 283 AtomicStore 166 12 33 14 284 168: 40(ptr) ImageTexelPointer 36(imagei) 39 17 285 AtomicStore 168 12 33 167 286 Return 287 FunctionEnd 288