| 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 |