spv.memoryScopeSemantics.comp // Module Version 10300 // Generated by (magic number): 8000a // Id's are bound by 169 Capability Shader Capability Int64 Capability Int64Atomics Capability StorageImageMultisample Capability VulkanMemoryModelKHR Capability VulkanMemoryModelDeviceScopeKHR Extension "SPV_KHR_vulkan_memory_model" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical VulkanKHR EntryPoint GLCompute 4 "main" ExecutionMode 4 LocalSize 1 1 1 Source GLSL 450 SourceExtension "GL_ARB_gpu_shader_int64" SourceExtension "GL_KHR_memory_scope_semantics" Name 4 "main" Name 8 "origi" Name 10 "atomi" Name 21 "origu" Name 23 "atomu" Name 24 "value" Name 36 "imagei" Name 46 "imageu" Name 66 "BufferU" MemberName 66(BufferU) 0 "x" Name 68 "bufferu" Name 73 "y" Name 78 "BufferI" MemberName 78(BufferI) 0 "x" Name 80 "bufferi" Name 84 "A" MemberName 84(A) 0 "x" Name 85 "BufferJ" MemberName 85(BufferJ) 0 "a" Name 88 "bufferj" Name 99 "BufferK" MemberName 99(BufferK) 0 "x" Name 101 "bufferk" Name 111 "imagej" Name 123 "samp" Name 134 "atomu64" Name 139 "atomi64" Name 144 "BufferL" MemberName 144(BufferL) 0 "x" Name 146 "bufferl" Name 151 "BufferM" MemberName 151(BufferM) 0 "x" Name 153 "bufferm" Name 165 "imageMS" Decorate 36(imagei) DescriptorSet 0 Decorate 36(imagei) Binding 1 Decorate 46(imageu) DescriptorSet 0 Decorate 46(imageu) Binding 0 MemberDecorate 66(BufferU) 0 Offset 0 Decorate 66(BufferU) Block Decorate 68(bufferu) DescriptorSet 0 Decorate 68(bufferu) Binding 2 MemberDecorate 78(BufferI) 0 Offset 0 Decorate 78(BufferI) Block Decorate 80(bufferi) DescriptorSet 0 Decorate 80(bufferi) Binding 3 Decorate 83 ArrayStride 4 MemberDecorate 84(A) 0 Offset 0 MemberDecorate 85(BufferJ) 0 Offset 0 Decorate 85(BufferJ) Block Decorate 88(bufferj) DescriptorSet 0 Decorate 88(bufferj) Binding 4 MemberDecorate 99(BufferK) 0 Offset 0 Decorate 99(BufferK) Block Decorate 101(bufferk) DescriptorSet 0 Decorate 101(bufferk) Binding 7 Decorate 111(imagej) DescriptorSet 0 Decorate 111(imagej) Binding 5 Decorate 123(samp) DescriptorSet 0 Decorate 123(samp) Binding 6 MemberDecorate 144(BufferL) 0 Offset 0 Decorate 144(BufferL) Block Decorate 146(bufferl) DescriptorSet 0 Decorate 146(bufferl) Binding 8 MemberDecorate 151(BufferM) 0 Offset 0 Decorate 151(BufferM) Block Decorate 153(bufferm) DescriptorSet 0 Decorate 153(bufferm) Binding 9 Decorate 165(imageMS) DescriptorSet 0 Decorate 165(imageMS) Binding 10 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 7: TypePointer Function 6(int) 9: TypePointer Workgroup 6(int) 10(atomi): 9(ptr) Variable Workgroup 11: 6(int) Constant 3 12: 6(int) Constant 1 13: 6(int) Constant 320 14: 6(int) Constant 4 15: TypeInt 32 0 16: 15(int) Constant 5 17: 15(int) Constant 0 18: 15(int) Constant 324 20: TypePointer Function 15(int) 22: TypePointer Workgroup 15(int) 23(atomu): 22(ptr) Variable Workgroup 24(value): 22(ptr) Variable Workgroup 26: 15(int) Constant 2 28: 6(int) Constant 64 29: 6(int) Constant 2 30: 15(int) Constant 66 33: 15(int) Constant 68 34: TypeImage 6(int) 2D nonsampled format:R32i 35: TypePointer UniformConstant 34 36(imagei): 35(ptr) Variable UniformConstant 37: TypeVector 6(int) 2 38: 6(int) Constant 0 39: 37(ivec2) ConstantComposite 38 38 40: TypePointer Image 6(int) 42: 15(int) Constant 32768 44: TypeImage 15(int) 2D nonsampled format:R32ui 45: TypePointer UniformConstant 44 46(imageu): 45(ptr) Variable UniformConstant 47: 15(int) Constant 3 48: TypePointer Image 15(int) 51: 15(int) Constant 4 53: 15(int) Constant 7 58: 6(int) Constant 7 62: 15(int) Constant 10 64: 15(int) Constant 322 66(BufferU): TypeStruct 15(int) 67: TypePointer StorageBuffer 66(BufferU) 68(bufferu): 67(ptr) Variable StorageBuffer 69: TypePointer StorageBuffer 15(int) 71: 15(int) Constant 1 78(BufferI): TypeStruct 15(int) 79: TypePointer StorageBuffer 78(BufferI) 80(bufferi): 79(ptr) Variable StorageBuffer 83: TypeArray 15(int) 26 84(A): TypeStruct 83 85(BufferJ): TypeStruct 84(A) 86: TypeArray 85(BufferJ) 26 87: TypePointer StorageBuffer 86 88(bufferj): 87(ptr) Variable StorageBuffer 95: TypePointer StorageBuffer 84(A) 99(BufferK): TypeStruct 15(int) 100: TypePointer Uniform 99(BufferK) 101(bufferk): 100(ptr) Variable Uniform 102: TypePointer Uniform 15(int) 107: TypeVector 6(int) 4 109: TypeArray 34 26 110: TypePointer UniformConstant 109 111(imagej): 110(ptr) Variable UniformConstant 117: 107(ivec4) ConstantComposite 38 38 38 38 118: TypeFloat 32 119: TypeImage 118(float) 2D sampled format:Unknown 120: TypeSampledImage 119 121: TypeArray 120 26 122: TypePointer UniformConstant 121 123(samp): 122(ptr) Variable UniformConstant 124: TypePointer UniformConstant 120 127: TypeVector 118(float) 2 128: 118(float) Constant 0 129: 127(fvec2) ConstantComposite 128 128 130: TypeVector 118(float) 4 132: TypeInt 64 0 133: TypePointer Workgroup 132(int64_t) 134(atomu64): 133(ptr) Variable Workgroup 135:132(int64_t) Constant 7 0 137: TypeInt 64 1 138: TypePointer Workgroup 137(int64_t) 139(atomi64): 138(ptr) Variable Workgroup 140:137(int64_t) Constant 10 0 144(BufferL): TypeStruct 15(int) 145: TypePointer StorageBuffer 144(BufferL) 146(bufferl): 145(ptr) Variable StorageBuffer 151(BufferM): TypeStruct 15(int) 152: TypePointer StorageBuffer 151(BufferM) 153(bufferm): 152(ptr) Variable StorageBuffer 161: 6(int) Constant 32768 163: TypeImage 6(int) 2D multi-sampled nonsampled format:R32i 164: TypePointer UniformConstant 163 165(imageMS): 164(ptr) Variable UniformConstant 167: 6(int) Constant 4294967289 4(main): 2 Function None 3 5: Label 8(origi): 7(ptr) Variable Function 21(origu): 20(ptr) Variable Function 73(y): 20(ptr) Variable Function 19: 6(int) AtomicIAdd 10(atomi) 12 18 11 Store 8(origi) 19 25: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 27: 15(int) AtomicAnd 23(atomu) 16 17 25 Store 21(origu) 27 31: 6(int) AtomicLoad 10(atomi) 12 30 Store 8(origi) 31 32: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 AtomicStore 23(atomu) 12 33 32 41: 40(ptr) ImageTexelPointer 36(imagei) 39 17 43: 6(int) AtomicLoad 41 12 30 Store 8(origi) 43 49: 48(ptr) ImageTexelPointer 46(imageu) 39 17 50: 15(int) AtomicIAdd 49 12 30 47 Store 21(origu) 50 52: 48(ptr) ImageTexelPointer 46(imageu) 39 17 AtomicStore 52 12 33 51 54: 15(int) AtomicOr 23(atomu) 12 17 53 Store 21(origu) 54 55: 15(int) AtomicXor 23(atomu) 12 17 53 Store 21(origu) 55 56: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 57: 15(int) AtomicUMin 23(atomu) 12 17 56 Store 21(origu) 57 59: 6(int) AtomicSMax 10(atomi) 12 17 58 Store 8(origi) 59 60: 6(int) Load 8(origi) 61: 6(int) AtomicExchange 10(atomi) 12 17 60 Store 8(origi) 61 63: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 65: 15(int) AtomicCompareExchange 23(atomu) 12 64 64 63 62 Store 21(origu) 65 70: 69(ptr) AccessChain 68(bufferu) 38 72: 15(int) AtomicIAdd 70 12 18 71 MemoryBarrier 26 18 ControlBarrier 26 26 64 ControlBarrier 26 26 17 74: 69(ptr) AccessChain 68(bufferu) 38 75: 15(int) Load 74 MakePointerVisibleKHR NonPrivatePointerKHR 26 Store 73(y) 75 76: 15(int) Load 73(y) 77: 69(ptr) AccessChain 68(bufferu) 38 Store 77 76 MakePointerAvailableKHR NonPrivatePointerKHR 26 81: 69(ptr) AccessChain 80(bufferi) 38 82: 15(int) Load 81 MakePointerVisibleKHR NonPrivatePointerKHR 16 Store 73(y) 82 89: 69(ptr) AccessChain 88(bufferj) 38 38 38 12 90: 15(int) Load 89 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 Store 73(y) 90 91: 15(int) Load 73(y) 92: 69(ptr) AccessChain 80(bufferi) 38 Store 92 91 MakePointerAvailableKHR NonPrivatePointerKHR 16 93: 15(int) Load 73(y) 94: 69(ptr) AccessChain 88(bufferj) 38 38 38 12 Store 94 93 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16 96: 95(ptr) AccessChain 88(bufferj) 12 38 97: 84(A) Load 96 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 98: 95(ptr) AccessChain 88(bufferj) 38 38 Store 98 97 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 16 103: 102(ptr) AccessChain 101(bufferk) 38 104: 15(int) Load 103 NonPrivatePointerKHR 105: 69(ptr) AccessChain 80(bufferi) 38 Store 105 104 MakePointerAvailableKHR NonPrivatePointerKHR 16 106: 34 Load 36(imagei) 108: 107(ivec4) ImageRead 106 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16 112: 35(ptr) AccessChain 111(imagej) 38 113: 34 Load 112 114: 107(ivec4) ImageRead 113 39 NonPrivateTexelKHR 115: 35(ptr) AccessChain 111(imagej) 12 116: 34 Load 115 ImageWrite 116 39 117 NonPrivateTexelKHR 125: 124(ptr) AccessChain 123(samp) 38 126: 120 Load 125 131: 130(fvec4) ImageSampleExplicitLod 126 129 Lod NonPrivateTexelKHR 128 136:132(int64_t) AtomicUMax 134(atomu64) 12 17 135 Store 134(atomu64) 136 MakePointerAvailableKHR NonPrivatePointerKHR 26 141:132(int64_t) Load 134(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26 142:137(int64_t) Bitcast 141 143:137(int64_t) AtomicCompareExchange 139(atomi64) 12 64 64 142 140 147: 69(ptr) AccessChain 146(bufferl) 38 148: 15(int) Load 147 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 16 Store 73(y) 148 149: 69(ptr) AccessChain 146(bufferl) 38 150: 15(int) AtomicIAdd 149 16 42 71 154: 69(ptr) AccessChain 153(bufferm) 38 155: 15(int) AtomicOr 154 16 42 26 156: 40(ptr) ImageTexelPointer 36(imagei) 39 17 157: 6(int) AtomicIAdd 156 16 42 11 158: 69(ptr) AccessChain 68(bufferu) 38 159: 15(int) AtomicIAdd 158 12 17 51 160: 69(ptr) AccessChain 68(bufferu) 38 162: 15(int) AtomicIAdd 160 12 42 16 166: 40(ptr) ImageTexelPointer 165(imageMS) 39 12 AtomicStore 166 12 33 14 168: 40(ptr) ImageTexelPointer 36(imagei) 39 17 AtomicStore 168 12 33 167 Return FunctionEnd