305 lines
16 KiB
Plaintext
305 lines
16 KiB
Plaintext
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
|