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