| spv.atomicAdd.bufferReference.comp |
| Validation failed |
| // Module Version 10300 |
| // Generated by (magic number): 8000b |
| // Id's are bound by 190 |
| |
| Capability Shader |
| Capability VulkanMemoryModelKHR |
| Capability VulkanMemoryModelDeviceScopeKHR |
| Capability PhysicalStorageBufferAddressesEXT |
| Extension "SPV_KHR_physical_storage_buffer" |
| Extension "SPV_KHR_vulkan_memory_model" |
| 1: ExtInstImport "GLSL.std.450" |
| MemoryModel PhysicalStorageBuffer64EXT VulkanKHR |
| EntryPoint GLCompute 4 "main" 40 83 135 |
| ExecutionModeId 4 LocalSizeId 7 8 9 |
| Source GLSL 450 |
| SourceExtension "GL_ARB_gpu_shader_int64" |
| SourceExtension "GL_EXT_buffer_reference" |
| SourceExtension "GL_KHR_memory_scope_semantics" |
| SourceExtension "GL_KHR_shader_subgroup_ballot" |
| SourceExtension "GL_KHR_shader_subgroup_basic" |
| SourceExtension "GL_KHR_shader_subgroup_shuffle" |
| Name 4 "main" |
| Name 12 "pass" |
| Name 14 "skip" |
| Name 17 "sharedSkip" |
| Name 21 "PayloadRef" |
| MemberName 21(PayloadRef) 0 "x" |
| Name 23 "payload" |
| Name 25 "PC" |
| MemberName 25(PC) 0 "payloadref" |
| MemberName 25(PC) 1 "guard" |
| Name 27 "GuardRef" |
| MemberName 27(GuardRef) 0 "x" |
| Name 29 "" |
| Name 37 "globalId" |
| Name 40 "gl_GlobalInvocationID" |
| Name 45 "partnerGlobalId" |
| Name 46 "DIM" |
| Name 47 "NUM_WORKGROUP_EACH_DIM" |
| Name 57 "bufferCoord" |
| Name 68 "partnerBufferCoord" |
| Name 77 "imageCoord" |
| Name 79 "partnerImageCoord" |
| Name 81 "globalId00" |
| Name 83 "gl_WorkGroupID" |
| Name 88 "partnerGlobalId00" |
| Name 97 "bufferCoord00" |
| Name 106 "partnerBufferCoord00" |
| Name 115 "imageCoord00" |
| Name 117 "partnerImageCoord00" |
| Name 135 "gl_LocalInvocationID" |
| Name 165 "r" |
| Name 181 "Fail" |
| MemberName 181(Fail) 0 "x" |
| Name 183 "fail" |
| Decorate 7 SpecId 0 |
| Decorate 8 SpecId 0 |
| Decorate 20 ArrayStride 4 |
| Decorate 21(PayloadRef) Block |
| MemberDecorate 21(PayloadRef) 0 Offset 0 |
| Decorate 23(payload) DecorationAliasedPointerEXT |
| Decorate 25(PC) Block |
| MemberDecorate 25(PC) 0 Offset 0 |
| MemberDecorate 25(PC) 1 Offset 8 |
| Decorate 26 ArrayStride 4 |
| Decorate 27(GuardRef) Block |
| MemberDecorate 27(GuardRef) 0 Offset 0 |
| Decorate 40(gl_GlobalInvocationID) BuiltIn GlobalInvocationId |
| Decorate 46(DIM) SpecId 0 |
| Decorate 47(NUM_WORKGROUP_EACH_DIM) SpecId 1 |
| Decorate 83(gl_WorkGroupID) BuiltIn WorkgroupId |
| Decorate 135(gl_LocalInvocationID) BuiltIn LocalInvocationId |
| Decorate 180 ArrayStride 4 |
| Decorate 181(Fail) Block |
| MemberDecorate 181(Fail) 0 Offset 0 |
| Decorate 183(fail) Binding 2 |
| Decorate 183(fail) DescriptorSet 0 |
| Decorate 187 SpecId 0 |
| Decorate 188 SpecId 0 |
| Decorate 189 BuiltIn WorkgroupSize |
| 2: TypeVoid |
| 3: TypeFunction 2 |
| 6: TypeInt 32 0 |
| 7: 6(int) SpecConstant 1 |
| 8: 6(int) SpecConstant 1 |
| 9: 6(int) Constant 1 |
| 10: TypeBool |
| 11: TypePointer Function 10(bool) |
| 13: 10(bool) ConstantTrue |
| 15: 10(bool) ConstantFalse |
| 16: TypePointer Workgroup 10(bool) |
| 17(sharedSkip): 16(ptr) Variable Workgroup |
| 18: 6(int) Constant 2 |
| TypeForwardPointer 19 PhysicalStorageBufferEXT |
| 20: TypeRuntimeArray 6(int) |
| 21(PayloadRef): TypeStruct 20 |
| 19: TypePointer PhysicalStorageBufferEXT 21(PayloadRef) |
| 22: TypePointer Function 19(ptr) |
| TypeForwardPointer 24 PhysicalStorageBufferEXT |
| 25(PC): TypeStruct 19(ptr) 24 |
| 26: TypeRuntimeArray 6(int) |
| 27(GuardRef): TypeStruct 26 |
| 24: TypePointer PhysicalStorageBufferEXT 27(GuardRef) |
| 28: TypePointer PushConstant 25(PC) |
| 29: 28(ptr) Variable PushConstant |
| 30: TypeInt 32 1 |
| 31: 30(int) Constant 0 |
| 32: TypePointer PushConstant 19(ptr) |
| 35: TypeVector 30(int) 2 |
| 36: TypePointer Function 35(ivec2) |
| 38: TypeVector 6(int) 3 |
| 39: TypePointer Input 38(ivec3) |
| 40(gl_GlobalInvocationID): 39(ptr) Variable Input |
| 41: TypeVector 6(int) 2 |
| 46(DIM): 30(int) SpecConstant 1 |
| 47(NUM_WORKGROUP_EACH_DIM): 30(int) SpecConstant 1 |
| 48: 30(int) SpecConstantOp 132 46(DIM) 47(NUM_WORKGROUP_EACH_DIM) |
| 49: 30(int) Constant 1 |
| 50: 30(int) SpecConstantOp 130 48 49 |
| 51: 35(ivec2) SpecConstantComposite 50 50 |
| 56: TypePointer Function 6(int) |
| 58: TypePointer Function 30(int) |
| 63: 6(int) Constant 0 |
| 82: 35(ivec2) SpecConstantComposite 46(DIM) 46(DIM) |
| 83(gl_WorkGroupID): 39(ptr) Variable Input |
| 89: 35(ivec2) SpecConstantComposite 46(DIM) 46(DIM) |
| 90: 30(int) SpecConstantOp 130 47(NUM_WORKGROUP_EACH_DIM) 49 |
| 91: 35(ivec2) SpecConstantComposite 90 90 |
| 124: TypePointer PhysicalStorageBufferEXT 6(int) |
| 127: 30(int) Constant 31 |
| 131: 30(int) Constant 2 |
| 132: 30(int) Constant 320 |
| 133: 30(int) Constant 8200 |
| 134: 6(int) Constant 8520 |
| 135(gl_LocalInvocationID): 39(ptr) Variable Input |
| 138: 41(ivec2) ConstantComposite 63 63 |
| 139: TypeVector 10(bool) 2 |
| 144: TypePointer PushConstant 24(ptr) |
| 149: 30(int) Constant 64 |
| 150: 30(int) Constant 8196 |
| 151: 6(int) Constant 5 |
| 152: 6(int) Constant 8260 |
| 157: 30(int) Constant 16386 |
| 158: 6(int) Constant 16450 |
| 162: 30(int) Constant 16392 |
| 163: 6(int) Constant 16712 |
| 180: TypeRuntimeArray 6(int) |
| 181(Fail): TypeStruct 180 |
| 182: TypePointer StorageBuffer 181(Fail) |
| 183(fail): 182(ptr) Variable StorageBuffer |
| 185: TypePointer StorageBuffer 6(int) |
| 187: 6(int) SpecConstant 1 |
| 188: 6(int) SpecConstant 1 |
| 189: 38(ivec3) SpecConstantComposite 187 188 9 |
| 4(main): 2 Function None 3 |
| 5: Label |
| 12(pass): 11(ptr) Variable Function |
| 14(skip): 11(ptr) Variable Function |
| 23(payload): 22(ptr) Variable Function |
| 37(globalId): 36(ptr) Variable Function |
| 45(partnerGlobalId): 36(ptr) Variable Function |
| 57(bufferCoord): 56(ptr) Variable Function |
| 68(partnerBufferCoord): 56(ptr) Variable Function |
| 77(imageCoord): 36(ptr) Variable Function |
| 79(partnerImageCoord): 36(ptr) Variable Function |
| 81(globalId00): 36(ptr) Variable Function |
| 88(partnerGlobalId00): 36(ptr) Variable Function |
| 97(bufferCoord00): 56(ptr) Variable Function |
| 106(partnerBufferCoord00): 56(ptr) Variable Function |
| 115(imageCoord00): 36(ptr) Variable Function |
| 117(partnerImageCoord00): 36(ptr) Variable Function |
| 165(r): 56(ptr) Variable Function |
| Store 12(pass) 13 |
| Store 14(skip) 15 |
| Store 17(sharedSkip) 15 MakePointerAvailableKHR NonPrivatePointerKHR 18 |
| 33: 32(ptr) AccessChain 29 31 |
| 34: 19(ptr) Load 33 |
| Store 23(payload) 34 |
| 42: 38(ivec3) Load 40(gl_GlobalInvocationID) |
| 43: 41(ivec2) VectorShuffle 42 42 0 1 |
| 44: 35(ivec2) Bitcast 43 |
| Store 37(globalId) 44 |
| 52: 38(ivec3) Load 40(gl_GlobalInvocationID) |
| 53: 41(ivec2) VectorShuffle 52 52 0 1 |
| 54: 35(ivec2) Bitcast 53 |
| 55: 35(ivec2) ISub 51 54 |
| Store 45(partnerGlobalId) 55 |
| 59: 58(ptr) AccessChain 37(globalId) 9 |
| 60: 30(int) Load 59 |
| 61: 30(int) IMul 60 46(DIM) |
| 62: 30(int) IMul 61 47(NUM_WORKGROUP_EACH_DIM) |
| 64: 58(ptr) AccessChain 37(globalId) 63 |
| 65: 30(int) Load 64 |
| 66: 30(int) IAdd 62 65 |
| 67: 6(int) Bitcast 66 |
| Store 57(bufferCoord) 67 |
| 69: 58(ptr) AccessChain 45(partnerGlobalId) 9 |
| 70: 30(int) Load 69 |
| 71: 30(int) IMul 70 46(DIM) |
| 72: 30(int) IMul 71 47(NUM_WORKGROUP_EACH_DIM) |
| 73: 58(ptr) AccessChain 45(partnerGlobalId) 63 |
| 74: 30(int) Load 73 |
| 75: 30(int) IAdd 72 74 |
| 76: 6(int) Bitcast 75 |
| Store 68(partnerBufferCoord) 76 |
| 78: 35(ivec2) Load 37(globalId) |
| Store 77(imageCoord) 78 |
| 80: 35(ivec2) Load 45(partnerGlobalId) |
| Store 79(partnerImageCoord) 80 |
| 84: 38(ivec3) Load 83(gl_WorkGroupID) |
| 85: 41(ivec2) VectorShuffle 84 84 0 1 |
| 86: 35(ivec2) Bitcast 85 |
| 87: 35(ivec2) IMul 82 86 |
| Store 81(globalId00) 87 |
| 92: 38(ivec3) Load 83(gl_WorkGroupID) |
| 93: 41(ivec2) VectorShuffle 92 92 0 1 |
| 94: 35(ivec2) Bitcast 93 |
| 95: 35(ivec2) ISub 91 94 |
| 96: 35(ivec2) IMul 89 95 |
| Store 88(partnerGlobalId00) 96 |
| 98: 58(ptr) AccessChain 81(globalId00) 9 |
| 99: 30(int) Load 98 |
| 100: 30(int) IMul 99 46(DIM) |
| 101: 30(int) IMul 100 47(NUM_WORKGROUP_EACH_DIM) |
| 102: 58(ptr) AccessChain 81(globalId00) 63 |
| 103: 30(int) Load 102 |
| 104: 30(int) IAdd 101 103 |
| 105: 6(int) Bitcast 104 |
| Store 97(bufferCoord00) 105 |
| 107: 58(ptr) AccessChain 88(partnerGlobalId00) 9 |
| 108: 30(int) Load 107 |
| 109: 30(int) IMul 108 46(DIM) |
| 110: 30(int) IMul 109 47(NUM_WORKGROUP_EACH_DIM) |
| 111: 58(ptr) AccessChain 88(partnerGlobalId00) 63 |
| 112: 30(int) Load 111 |
| 113: 30(int) IAdd 110 112 |
| 114: 6(int) Bitcast 113 |
| Store 106(partnerBufferCoord00) 114 |
| 116: 35(ivec2) Load 81(globalId00) |
| Store 115(imageCoord00) 116 |
| 118: 35(ivec2) Load 88(partnerGlobalId00) |
| Store 117(partnerImageCoord00) 118 |
| 119: 19(ptr) Load 23(payload) |
| 120: 6(int) Load 57(bufferCoord) |
| 121: 6(int) Load 57(bufferCoord) |
| 122: 19(ptr) Load 23(payload) |
| 123: 6(int) Load 68(partnerBufferCoord) |
| 125: 124(ptr) AccessChain 122 31 123 |
| 126: 6(int) Load 125 Aligned NonPrivatePointerKHR 4 |
| 128: 6(int) ShiftRightLogical 126 127 |
| 129: 6(int) IAdd 121 128 |
| 130: 124(ptr) AccessChain 119 31 120 |
| Store 130 129 Aligned NonPrivatePointerKHR 4 |
| ControlBarrier 18 18 134 |
| 136: 38(ivec3) Load 135(gl_LocalInvocationID) |
| 137: 41(ivec2) VectorShuffle 136 136 0 1 |
| 140: 139(bvec2) IEqual 137 138 |
| 141: 10(bool) All 140 |
| SelectionMerge 143 None |
| BranchConditional 141 142 143 |
| 142: Label |
| 145: 144(ptr) AccessChain 29 49 |
| 146: 24(ptr) Load 145 |
| 147: 6(int) Load 57(bufferCoord) |
| 148: 124(ptr) AccessChain 146 31 147 |
| AtomicStore 148 49 152 9 |
| 153: 144(ptr) AccessChain 29 49 |
| 154: 24(ptr) Load 153 |
| 155: 6(int) Load 106(partnerBufferCoord00) |
| 156: 124(ptr) AccessChain 154 31 155 |
| 159: 6(int) AtomicLoad 156 49 158 |
| 160: 10(bool) IEqual 159 63 |
| Store 14(skip) 160 |
| 161: 10(bool) Load 14(skip) |
| Store 17(sharedSkip) 161 MakePointerAvailableKHR NonPrivatePointerKHR 18 |
| Branch 143 |
| 143: Label |
| ControlBarrier 18 18 163 |
| 164: 10(bool) Load 17(sharedSkip) MakePointerVisibleKHR NonPrivatePointerKHR 18 |
| Store 14(skip) 164 |
| 166: 19(ptr) Load 23(payload) |
| 167: 6(int) Load 68(partnerBufferCoord) |
| 168: 124(ptr) AccessChain 166 31 167 |
| 169: 6(int) Load 168 Aligned NonPrivatePointerKHR 4 |
| Store 165(r) 169 |
| 170: 10(bool) Load 14(skip) |
| 171: 10(bool) LogicalNot 170 |
| SelectionMerge 173 None |
| BranchConditional 171 172 173 |
| 172: Label |
| 174: 6(int) Load 165(r) |
| 175: 6(int) Load 68(partnerBufferCoord) |
| 176: 10(bool) INotEqual 174 175 |
| Branch 173 |
| 173: Label |
| 177: 10(bool) Phi 171 143 176 172 |
| SelectionMerge 179 None |
| BranchConditional 177 178 179 |
| 178: Label |
| 184: 6(int) Load 57(bufferCoord) |
| 186: 185(ptr) AccessChain 183(fail) 31 184 |
| Store 186 9 |
| Branch 179 |
| 179: Label |
| Return |
| FunctionEnd |