| spv.memoryScopeSemantics.comp |
| error: SPIRV-Tools Validation Errors |
| error: Capability Int64Atomics is not allowed by Vulkan 1.0 specification (or requires extension) |
| OpCapability Int64Atomics |
| |
| // 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 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 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 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 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 26 |
| 139:130(int64_t) Load 132(atomu64) MakePointerVisibleKHR 26 |
| 140:135(int64_t) Bitcast 139 |
| 141:135(int64_t) AtomicCompareExchange 137(atomi64) 12 63 63 140 138 |
| Return |
| FunctionEnd |