1deee662创建于 2025年8月1日历史提交
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
                              Decorate 18(PayloadRef) Block
                              MemberDecorate 18(PayloadRef) 0 Offset 0
                              Decorate 20(payload) DecorationAliasedPointerEXT
                              Decorate 22(PC) Block
                              MemberDecorate 22(PC) 0 Offset 0
                              MemberDecorate 22(PC) 1 Offset 8
                              Decorate 23 ArrayStride 4
                              Decorate 24(GuardRef) Block
                              MemberDecorate 24(GuardRef) 0 Offset 0
                              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
                              Decorate 179(Fail) Block
                              MemberDecorate 179(Fail) 0 Offset 0
                              Decorate 181(fail) Binding 2
                              Decorate 181(fail) DescriptorSet 0
                              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