spv.memoryScopeSemantics.comp // Module Version 10300 // Generated by (magic number): 80007 // Id's are bound by 143 Capability Shader Capability Int64 Capability Int64Atomics Capability CapabilityVulkanMemoryModelKHR Capability CapabilityVulkanMemoryModelDeviceScopeKHR 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 45 "imageu" Name 65 "BufferU" MemberName 65(BufferU) 0 "x" Name 67 "bufferu" Name 72 "y" Name 77 "BufferI" MemberName 77(BufferI) 0 "x" Name 79 "bufferi" Name 83 "A" MemberName 83(A) 0 "x" Name 84 "BufferJ" MemberName 84(BufferJ) 0 "a" Name 87 "bufferj" Name 98 "BufferK" MemberName 98(BufferK) 0 "x" Name 100 "bufferk" Name 110 "imagej" Name 122 "samp" Name 133 "atomu64" Name 138 "atomi64" Decorate 36(imagei) DescriptorSet 0 Decorate 36(imagei) Binding 1 Decorate 45(imageu) DescriptorSet 0 Decorate 45(imageu) Binding 0 MemberDecorate 65(BufferU) 0 Offset 0 Decorate 65(BufferU) Block Decorate 67(bufferu) DescriptorSet 0 Decorate 67(bufferu) Binding 2 MemberDecorate 77(BufferI) 0 Offset 0 Decorate 77(BufferI) Block Decorate 79(bufferi) DescriptorSet 0 Decorate 79(bufferi) Binding 3 Decorate 82 ArrayStride 4 MemberDecorate 83(A) 0 Offset 0 MemberDecorate 84(BufferJ) 0 Offset 0 Decorate 84(BufferJ) Block Decorate 87(bufferj) DescriptorSet 0 Decorate 87(bufferj) Binding 4 MemberDecorate 98(BufferK) 0 Offset 0 Decorate 98(BufferK) Block Decorate 100(bufferk) DescriptorSet 0 Decorate 100(bufferk) Binding 7 Decorate 110(imagej) DescriptorSet 0 Decorate 110(imagej) Binding 5 Decorate 122(samp) DescriptorSet 0 Decorate 122(samp) Binding 6 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) 43: TypeImage 15(int) 2D nonsampled format:R32ui 44: TypePointer UniformConstant 43 45(imageu): 44(ptr) Variable UniformConstant 46: 15(int) Constant 3 47: TypePointer Image 15(int) 50: 15(int) Constant 4 52: 15(int) Constant 7 57: 6(int) Constant 7 61: 15(int) Constant 10 63: 15(int) Constant 322 65(BufferU): TypeStruct 15(int) 66: TypePointer StorageBuffer 65(BufferU) 67(bufferu): 66(ptr) Variable StorageBuffer 68: TypePointer StorageBuffer 15(int) 70: 15(int) Constant 1 77(BufferI): TypeStruct 15(int) 78: TypePointer StorageBuffer 77(BufferI) 79(bufferi): 78(ptr) Variable StorageBuffer 82: TypeArray 15(int) 26 83(A): TypeStruct 82 84(BufferJ): TypeStruct 83(A) 85: TypeArray 84(BufferJ) 26 86: TypePointer StorageBuffer 85 87(bufferj): 86(ptr) Variable StorageBuffer 94: TypePointer StorageBuffer 83(A) 98(BufferK): TypeStruct 15(int) 99: TypePointer Uniform 98(BufferK) 100(bufferk): 99(ptr) Variable Uniform 101: TypePointer Uniform 15(int) 106: TypeVector 6(int) 4 108: TypeArray 34 26 109: TypePointer UniformConstant 108 110(imagej): 109(ptr) Variable UniformConstant 116: 106(ivec4) ConstantComposite 38 38 38 38 117: TypeFloat 32 118: TypeImage 117(float) 2D sampled format:Unknown 119: TypeSampledImage 118 120: TypeArray 119 26 121: TypePointer UniformConstant 120 122(samp): 121(ptr) Variable UniformConstant 123: TypePointer UniformConstant 119 126: TypeVector 117(float) 2 127: 117(float) Constant 0 128: 126(fvec2) ConstantComposite 127 127 129: TypeVector 117(float) 4 131: TypeInt 64 0 132: TypePointer Workgroup 131(int64_t) 133(atomu64): 132(ptr) Variable Workgroup 134:131(int64_t) Constant 7 0 136: TypeInt 64 1 137: TypePointer Workgroup 136(int64_t) 138(atomi64): 137(ptr) Variable Workgroup 139:136(int64_t) Constant 10 0 4(main): 2 Function None 3 5: Label 8(origi): 7(ptr) Variable Function 21(origu): 20(ptr) Variable Function 72(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 42: 6(int) AtomicLoad 41 12 30 Store 8(origi) 42 48: 47(ptr) ImageTexelPointer 45(imageu) 39 17 49: 15(int) AtomicIAdd 48 12 30 46 Store 21(origu) 49 51: 47(ptr) ImageTexelPointer 45(imageu) 39 17 AtomicStore 51 12 33 50 53: 15(int) AtomicOr 23(atomu) 12 17 52 Store 21(origu) 53 54: 15(int) AtomicXor 23(atomu) 12 17 52 Store 21(origu) 54 55: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 56: 15(int) AtomicUMin 23(atomu) 12 17 55 Store 21(origu) 56 58: 6(int) AtomicSMax 10(atomi) 12 17 57 Store 8(origi) 58 59: 6(int) Load 8(origi) 60: 6(int) AtomicExchange 10(atomi) 12 17 59 Store 8(origi) 60 62: 15(int) Load 24(value) MakePointerVisibleKHR NonPrivatePointerKHR 26 64: 15(int) AtomicCompareExchange 23(atomu) 12 63 63 62 61 Store 21(origu) 64 69: 68(ptr) AccessChain 67(bufferu) 38 71: 15(int) AtomicIAdd 69 12 18 70 MemoryBarrier 26 18 ControlBarrier 26 26 63 ControlBarrier 26 26 17 73: 68(ptr) AccessChain 67(bufferu) 38 74: 15(int) Load 73 MakePointerVisibleKHR NonPrivatePointerKHR 26 Store 72(y) 74 75: 15(int) Load 72(y) 76: 68(ptr) AccessChain 67(bufferu) 38 Store 76 75 MakePointerAvailableKHR NonPrivatePointerKHR 26 80: 68(ptr) AccessChain 79(bufferi) 38 81: 15(int) Load 80 MakePointerVisibleKHR NonPrivatePointerKHR 16 Store 72(y) 81 88: 68(ptr) AccessChain 87(bufferj) 38 38 38 12 89: 15(int) Load 88 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 46 Store 72(y) 89 90: 15(int) Load 72(y) 91: 68(ptr) AccessChain 79(bufferi) 38 Store 91 90 MakePointerAvailableKHR NonPrivatePointerKHR 16 92: 15(int) Load 72(y) 93: 68(ptr) AccessChain 87(bufferj) 38 38 38 12 Store 93 92 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 46 95: 94(ptr) AccessChain 87(bufferj) 12 38 96: 83(A) Load 95 Volatile MakePointerVisibleKHR NonPrivatePointerKHR 46 97: 94(ptr) AccessChain 87(bufferj) 38 38 Store 97 96 Volatile MakePointerAvailableKHR NonPrivatePointerKHR 46 102: 101(ptr) AccessChain 100(bufferk) 38 103: 15(int) Load 102 NonPrivatePointerKHR 104: 68(ptr) AccessChain 79(bufferi) 38 Store 104 103 MakePointerAvailableKHR NonPrivatePointerKHR 16 105: 34 Load 36(imagei) 107: 106(ivec4) ImageRead 105 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16 111: 35(ptr) AccessChain 110(imagej) 38 112: 34 Load 111 113: 106(ivec4) ImageRead 112 39 NonPrivateTexelKHR 114: 35(ptr) AccessChain 110(imagej) 12 115: 34 Load 114 ImageWrite 115 39 116 NonPrivateTexelKHR 124: 123(ptr) AccessChain 122(samp) 38 125: 119 Load 124 130: 129(fvec4) ImageSampleExplicitLod 125 128 Lod NonPrivateTexelKHR 127 135:131(int64_t) AtomicUMax 133(atomu64) 12 17 134 Store 133(atomu64) 135 MakePointerAvailableKHR NonPrivatePointerKHR 26 140:131(int64_t) Load 133(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26 141:136(int64_t) Bitcast 140 142:136(int64_t) AtomicCompareExchange 138(atomi64) 12 63 63 141 139 Return FunctionEnd