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