spv.memoryScopeSemantics.comp // Module Version 10000 // Generated by (magic number): 80007 // Id's are bound by 142 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 109 "imagej" Name 121 "samp" Name 132 "atomu64" Name 137 "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) BufferBlock Decorate 67(bufferu) DescriptorSet 0 Decorate 67(bufferu) Binding 2 MemberDecorate 77(BufferI) 0 Offset 0 Decorate 77(BufferI) BufferBlock 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) BufferBlock 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 109(imagej) DescriptorSet 0 Decorate 109(imagej) Binding 5 Decorate 121(samp) DescriptorSet 0 Decorate 121(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 Uniform 65(BufferU) 67(bufferu): 66(ptr) Variable Uniform 68: TypePointer Uniform 15(int) 70: 15(int) Constant 1 77(BufferI): TypeStruct 15(int) 78: TypePointer Uniform 77(BufferI) 79(bufferi): 78(ptr) Variable Uniform 82: TypeArray 15(int) 26 83(A): TypeStruct 82 84(BufferJ): TypeStruct 83(A) 85: TypeArray 84(BufferJ) 26 86: TypePointer Uniform 85 87(bufferj): 86(ptr) Variable Uniform 94: TypePointer Uniform 83(A) 98(BufferK): TypeStruct 15(int) 99: TypePointer Uniform 98(BufferK) 100(bufferk): 99(ptr) Variable Uniform 105: TypeVector 6(int) 4 107: TypeArray 34 26 108: TypePointer UniformConstant 107 109(imagej): 108(ptr) Variable UniformConstant 115: 105(ivec4) ConstantComposite 38 38 38 38 116: TypeFloat 32 117: TypeImage 116(float) 2D sampled format:Unknown 118: TypeSampledImage 117 119: TypeArray 118 26 120: TypePointer UniformConstant 119 121(samp): 120(ptr) Variable UniformConstant 122: TypePointer UniformConstant 118 125: TypeVector 116(float) 2 126: 116(float) Constant 0 127: 125(fvec2) ConstantComposite 126 126 128: TypeVector 116(float) 4 130: TypeInt 64 0 131: TypePointer Workgroup 130(int64_t) 132(atomu64): 131(ptr) Variable Workgroup 133:130(int64_t) Constant 7 0 135: TypeInt 64 1 136: TypePointer Workgroup 135(int64_t) 137(atomi64): 136(ptr) Variable Workgroup 138:135(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 101: 68(ptr) AccessChain 100(bufferk) 38 102: 15(int) Load 101 NonPrivatePointerKHR 103: 68(ptr) AccessChain 79(bufferi) 38 Store 103 102 MakePointerAvailableKHR NonPrivatePointerKHR 16 104: 34 Load 36(imagei) 106: 105(ivec4) ImageRead 104 39 MakeTexelVisibleKHR NonPrivateTexelKHR VolatileTexelKHR 16 110: 35(ptr) AccessChain 109(imagej) 38 111: 34 Load 110 112: 105(ivec4) ImageRead 111 39 NonPrivateTexelKHR 113: 35(ptr) AccessChain 109(imagej) 12 114: 34 Load 113 ImageWrite 114 39 115 NonPrivateTexelKHR 123: 122(ptr) AccessChain 121(samp) 38 124: 118 Load 123 129: 128(fvec4) ImageSampleExplicitLod 124 127 Lod NonPrivateTexelKHR 126 134:130(int64_t) AtomicUMax 132(atomu64) 12 17 133 Store 132(atomu64) 134 MakePointerAvailableKHR NonPrivatePointerKHR 26 139:130(int64_t) Load 132(atomu64) MakePointerVisibleKHR NonPrivatePointerKHR 26 140:135(int64_t) Bitcast 139 141:135(int64_t) AtomicCompareExchange 137(atomi64) 12 63 63 140 138 Return FunctionEnd