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