• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; SPIR-V
2; Version: 1.3
3; Generator: Unknown(30017); 21022
4; Bound: 233
5; Schema: 0
6               OpCapability Shader
7               OpCapability SampledBuffer
8               OpCapability ImageBuffer
9               OpCapability ImageQuery
10               OpCapability StorageImageWriteWithoutFormat
11               OpCapability GroupNonUniformBallot
12               OpCapability RuntimeDescriptorArray
13               OpCapability UniformTexelBufferArrayDynamicIndexing
14               OpCapability StorageTexelBufferArrayDynamicIndexing
15               OpCapability UniformTexelBufferArrayNonUniformIndexing
16               OpCapability StorageTexelBufferArrayNonUniformIndexing
17               OpCapability PhysicalStorageBufferAddresses
18               OpExtension "SPV_EXT_descriptor_indexing"
19               OpExtension "SPV_KHR_physical_storage_buffer"
20               OpMemoryModel PhysicalStorageBuffer64 GLSL450
21               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
22               OpExecutionMode %main LocalSize 1 1 1
23               OpName %main "main"
24               OpName %RootConstants "RootConstants"
25               OpName %registers "registers"
26               OpName %SSBO_Offsets "SSBO_Offsets"
27               OpDecorate %RootConstants Block
28               OpMemberDecorate %RootConstants 0 Offset 0
29               OpMemberDecorate %RootConstants 1 Offset 4
30               OpMemberDecorate %RootConstants 2 Offset 8
31               OpMemberDecorate %RootConstants 3 Offset 12
32               OpMemberDecorate %RootConstants 4 Offset 16
33               OpMemberDecorate %RootConstants 5 Offset 20
34               OpMemberDecorate %RootConstants 6 Offset 24
35               OpMemberDecorate %RootConstants 7 Offset 28
36               OpDecorate %_runtimearr_v2uint ArrayStride 8
37               OpMemberDecorate %SSBO_Offsets 0 Offset 0
38               OpDecorate %SSBO_Offsets Block
39               OpDecorate %13 DescriptorSet 0
40               OpDecorate %13 Binding 0
41               OpDecorate %13 NonWritable
42               OpDecorate %13 Restrict
43               OpDecorate %18 DescriptorSet 1
44               OpDecorate %18 Binding 0
45               OpDecorate %22 DescriptorSet 4
46               OpDecorate %22 Binding 0
47               OpDecorate %26 DescriptorSet 4
48               OpDecorate %26 Binding 0
49               OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
50               OpDecorate %148 NonUniform
51               OpDecorate %149 NonUniform
52               OpDecorate %172 NonUniform
53               OpDecorate %173 NonUniform
54               OpDecorate %196 NonUniform
55               OpDecorate %197 NonUniform
56               OpDecorate %205 NonUniform
57               OpDecorate %212 NonUniform
58       %void = OpTypeVoid
59          %2 = OpTypeFunction %void
60       %uint = OpTypeInt 32 0
61%RootConstants = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint %uint
62%_ptr_PushConstant_RootConstants = OpTypePointer PushConstant %RootConstants
63  %registers = OpVariable %_ptr_PushConstant_RootConstants PushConstant
64     %v2uint = OpTypeVector %uint 2
65%_runtimearr_v2uint = OpTypeRuntimeArray %v2uint
66%SSBO_Offsets = OpTypeStruct %_runtimearr_v2uint
67%_ptr_StorageBuffer_SSBO_Offsets = OpTypePointer StorageBuffer %SSBO_Offsets
68         %13 = OpVariable %_ptr_StorageBuffer_SSBO_Offsets StorageBuffer
69      %float = OpTypeFloat 32
70         %15 = OpTypeImage %float Buffer 0 0 0 1 Unknown
71%_runtimearr_15 = OpTypeRuntimeArray %15
72%_ptr_UniformConstant__runtimearr_15 = OpTypePointer UniformConstant %_runtimearr_15
73         %18 = OpVariable %_ptr_UniformConstant__runtimearr_15 UniformConstant
74         %19 = OpTypeImage %float Buffer 0 0 0 2 R32f
75%_runtimearr_19 = OpTypeRuntimeArray %19
76%_ptr_UniformConstant__runtimearr_19 = OpTypePointer UniformConstant %_runtimearr_19
77         %22 = OpVariable %_ptr_UniformConstant__runtimearr_19 UniformConstant
78         %23 = OpTypeImage %uint Buffer 0 0 0 2 R32ui
79%_runtimearr_23 = OpTypeRuntimeArray %23
80%_ptr_UniformConstant__runtimearr_23 = OpTypePointer UniformConstant %_runtimearr_23
81         %26 = OpVariable %_ptr_UniformConstant__runtimearr_23 UniformConstant
82%_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23
83%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint
84     %uint_4 = OpConstant %uint 4
85     %uint_2 = OpConstant %uint 2
86     %uint_3 = OpConstant %uint 3
87%_ptr_StorageBuffer_v2uint = OpTypePointer StorageBuffer %v2uint
88     %uint_0 = OpConstant %uint 0
89%_ptr_UniformConstant_19 = OpTypePointer UniformConstant %19
90%_ptr_UniformConstant_15 = OpTypePointer UniformConstant %15
91     %uint_1 = OpConstant %uint 1
92     %v3uint = OpTypeVector %uint 3
93%_ptr_Input_v3uint = OpTypePointer Input %v3uint
94%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
95%_ptr_Input_uint = OpTypePointer Input %uint
96       %bool = OpTypeBool
97%uint_4294967295 = OpConstant %uint 4294967295
98    %v4float = OpTypeVector %float 4
99  %uint_1024 = OpConstant %uint 1024
100  %uint_2048 = OpConstant %uint 2048
101%_ptr_Image_uint = OpTypePointer Image %uint
102    %uint_40 = OpConstant %uint 40
103    %uint_50 = OpConstant %uint 50
104    %uint_70 = OpConstant %uint 70
105       %main = OpFunction %void None %2
106          %4 = OpLabel
107               OpBranch %231
108        %231 = OpLabel
109         %30 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_4
110         %32 = OpLoad %uint %30
111         %33 = OpIAdd %uint %32 %uint_2
112         %28 = OpAccessChain %_ptr_UniformConstant_23 %26 %33
113         %35 = OpLoad %23 %28
114         %36 = OpGroupNonUniformBroadcastFirst %uint %uint_3 %33
115         %39 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %36
116         %41 = OpLoad %v2uint %39
117         %44 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_4
118         %45 = OpLoad %uint %44
119         %43 = OpAccessChain %_ptr_UniformConstant_19 %22 %45
120         %46 = OpLoad %19 %43
121         %47 = OpGroupNonUniformBroadcastFirst %uint %uint_3 %45
122         %48 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %47
123         %49 = OpLoad %v2uint %48
124         %52 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_1
125         %54 = OpLoad %uint %52
126         %55 = OpIAdd %uint %54 %uint_1
127         %51 = OpAccessChain %_ptr_UniformConstant_15 %18 %55
128         %56 = OpLoad %15 %51
129         %57 = OpGroupNonUniformBroadcastFirst %uint %uint_3 %55
130         %58 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %57
131         %59 = OpLoad %v2uint %58
132         %64 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
133         %65 = OpLoad %uint %64
134         %66 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_1
135         %67 = OpLoad %uint %66
136         %68 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2
137         %69 = OpLoad %uint %68
138         %70 = OpIAdd %uint %65 %uint_4
139         %71 = OpCompositeExtract %uint %49 0
140         %72 = OpCompositeExtract %uint %49 1
141         %73 = OpIAdd %uint %70 %71
142         %75 = OpULessThan %bool %70 %72
143         %76 = OpSelect %uint %75 %73 %uint_4294967295
144         %79 = OpImageRead %v4float %46 %76
145         %80 = OpCompositeExtract %float %79 0
146         %81 = OpCompositeExtract %float %79 1
147         %82 = OpCompositeExtract %float %79 2
148         %83 = OpCompositeExtract %float %79 3
149         %84 = OpIAdd %uint %65 %uint_1024
150         %86 = OpCompositeExtract %uint %49 0
151         %87 = OpCompositeExtract %uint %49 1
152         %88 = OpIAdd %uint %84 %86
153         %89 = OpULessThan %bool %84 %87
154         %90 = OpSelect %uint %89 %88 %uint_4294967295
155         %91 = OpCompositeConstruct %v4float %80 %81 %82 %83
156               OpImageWrite %46 %90 %91
157         %92 = OpIAdd %uint %65 %uint_2
158         %93 = OpCompositeExtract %uint %59 0
159         %94 = OpCompositeExtract %uint %59 1
160         %95 = OpIAdd %uint %92 %93
161         %96 = OpULessThan %bool %92 %94
162         %97 = OpSelect %uint %96 %95 %uint_4294967295
163         %98 = OpImageFetch %v4float %56 %97
164         %99 = OpCompositeExtract %float %98 0
165        %100 = OpCompositeExtract %float %98 1
166        %101 = OpCompositeExtract %float %98 2
167        %102 = OpCompositeExtract %float %98 3
168        %103 = OpIAdd %uint %65 %uint_2048
169        %105 = OpCompositeExtract %uint %49 0
170        %106 = OpCompositeExtract %uint %49 1
171        %107 = OpIAdd %uint %103 %105
172        %108 = OpULessThan %bool %103 %106
173        %109 = OpSelect %uint %108 %107 %uint_4294967295
174        %110 = OpCompositeConstruct %v4float %99 %100 %101 %102
175               OpImageWrite %46 %109 %110
176        %111 = OpCompositeExtract %uint %41 0
177        %112 = OpCompositeExtract %uint %41 1
178        %113 = OpIAdd %uint %65 %111
179        %114 = OpULessThan %bool %65 %112
180        %115 = OpSelect %uint %114 %113 %uint_4294967295
181        %117 = OpImageTexelPointer %_ptr_Image_uint %28 %115 %uint_0
182        %118 = OpAtomicIAdd %uint %117 %uint_1 %uint_0 %uint_40
183        %120 = OpCompositeExtract %uint %41 0
184        %121 = OpCompositeExtract %uint %41 1
185        %122 = OpIAdd %uint %67 %120
186        %123 = OpULessThan %bool %67 %121
187        %124 = OpSelect %uint %123 %122 %uint_4294967295
188        %125 = OpImageTexelPointer %_ptr_Image_uint %28 %124 %uint_0
189        %126 = OpAtomicCompareExchange %uint %125 %uint_1 %uint_0 %uint_0 %uint_50 %uint_40
190        %128 = OpCompositeExtract %uint %49 1
191        %129 = OpConvertUToF %float %128
192        %130 = OpCompositeExtract %uint %49 0
193        %131 = OpCompositeExtract %uint %49 1
194        %132 = OpIAdd %uint %uint_0 %130
195        %133 = OpULessThan %bool %uint_0 %131
196        %134 = OpSelect %uint %133 %132 %uint_4294967295
197        %135 = OpCompositeConstruct %v4float %129 %129 %129 %129
198               OpImageWrite %46 %134 %135
199        %136 = OpCompositeExtract %uint %59 1
200        %137 = OpConvertUToF %float %136
201        %138 = OpCompositeExtract %uint %49 0
202        %139 = OpCompositeExtract %uint %49 1
203        %140 = OpIAdd %uint %uint_1 %138
204        %141 = OpULessThan %bool %uint_1 %139
205        %142 = OpSelect %uint %141 %140 %uint_4294967295
206        %143 = OpCompositeConstruct %v4float %137 %137 %137 %137
207               OpImageWrite %46 %142 %143
208        %144 = OpIAdd %uint %69 %uint_0
209        %146 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_4
210        %147 = OpLoad %uint %146
211        %148 = OpIAdd %uint %147 %144
212        %145 = OpAccessChain %_ptr_UniformConstant_19 %22 %148
213        %149 = OpLoad %19 %145
214        %150 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %148
215        %151 = OpLoad %v2uint %150
216        %152 = OpCompositeExtract %uint %151 0
217        %153 = OpCompositeExtract %uint %151 1
218        %154 = OpIAdd %uint %70 %152
219        %155 = OpULessThan %bool %70 %153
220        %156 = OpSelect %uint %155 %154 %uint_4294967295
221        %157 = OpImageRead %v4float %149 %156
222        %158 = OpCompositeExtract %float %157 0
223        %159 = OpCompositeExtract %float %157 1
224        %160 = OpCompositeExtract %float %157 2
225        %161 = OpCompositeExtract %float %157 3
226        %162 = OpCompositeExtract %uint %151 0
227        %163 = OpCompositeExtract %uint %151 1
228        %164 = OpIAdd %uint %84 %162
229        %165 = OpULessThan %bool %84 %163
230        %166 = OpSelect %uint %165 %164 %uint_4294967295
231        %167 = OpCompositeConstruct %v4float %158 %159 %160 %161
232               OpImageWrite %149 %166 %167
233        %168 = OpIAdd %uint %69 %uint_0
234        %170 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_1
235        %171 = OpLoad %uint %170
236        %172 = OpIAdd %uint %171 %168
237        %169 = OpAccessChain %_ptr_UniformConstant_15 %18 %172
238        %173 = OpLoad %15 %169
239        %174 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %172
240        %175 = OpLoad %v2uint %174
241        %176 = OpCompositeExtract %uint %175 0
242        %177 = OpCompositeExtract %uint %175 1
243        %178 = OpIAdd %uint %70 %176
244        %179 = OpULessThan %bool %70 %177
245        %180 = OpSelect %uint %179 %178 %uint_4294967295
246        %181 = OpImageFetch %v4float %173 %180
247        %182 = OpCompositeExtract %float %181 0
248        %183 = OpCompositeExtract %float %181 1
249        %184 = OpCompositeExtract %float %181 2
250        %185 = OpCompositeExtract %float %181 3
251        %186 = OpCompositeExtract %uint %151 0
252        %187 = OpCompositeExtract %uint %151 1
253        %188 = OpIAdd %uint %103 %186
254        %189 = OpULessThan %bool %103 %187
255        %190 = OpSelect %uint %189 %188 %uint_4294967295
256        %191 = OpCompositeConstruct %v4float %182 %183 %184 %185
257               OpImageWrite %149 %190 %191
258        %192 = OpIAdd %uint %69 %uint_0
259        %194 = OpAccessChain %_ptr_PushConstant_uint %registers %uint_4
260        %195 = OpLoad %uint %194
261        %196 = OpIAdd %uint %195 %192
262        %193 = OpAccessChain %_ptr_UniformConstant_23 %26 %196
263        %197 = OpLoad %23 %193
264        %198 = OpAccessChain %_ptr_StorageBuffer_v2uint %13 %uint_0 %196
265        %199 = OpLoad %v2uint %198
266        %200 = OpCompositeExtract %uint %199 0
267        %201 = OpCompositeExtract %uint %199 1
268        %202 = OpIAdd %uint %67 %200
269        %203 = OpULessThan %bool %67 %201
270        %204 = OpSelect %uint %203 %202 %uint_4294967295
271        %205 = OpImageTexelPointer %_ptr_Image_uint %193 %204 %uint_0
272        %206 = OpAtomicIAdd %uint %205 %uint_1 %uint_0 %uint_40
273        %207 = OpCompositeExtract %uint %199 0
274        %208 = OpCompositeExtract %uint %199 1
275        %209 = OpIAdd %uint %67 %207
276        %210 = OpULessThan %bool %67 %208
277        %211 = OpSelect %uint %210 %209 %uint_4294967295
278        %212 = OpImageTexelPointer %_ptr_Image_uint %193 %211 %uint_0
279        %213 = OpAtomicCompareExchange %uint %212 %uint_1 %uint_0 %uint_0 %uint_70 %uint_40
280        %215 = OpCompositeExtract %uint %151 1
281        %216 = OpConvertUToF %float %215
282        %217 = OpCompositeExtract %uint %49 0
283        %218 = OpCompositeExtract %uint %49 1
284        %219 = OpIAdd %uint %uint_2 %217
285        %220 = OpULessThan %bool %uint_2 %218
286        %221 = OpSelect %uint %220 %219 %uint_4294967295
287        %222 = OpCompositeConstruct %v4float %216 %216 %216 %216
288               OpImageWrite %46 %221 %222
289        %223 = OpCompositeExtract %uint %175 1
290        %224 = OpConvertUToF %float %223
291        %225 = OpCompositeExtract %uint %49 0
292        %226 = OpCompositeExtract %uint %49 1
293        %227 = OpIAdd %uint %uint_3 %225
294        %228 = OpULessThan %bool %uint_3 %226
295        %229 = OpSelect %uint %228 %227 %uint_4294967295
296        %230 = OpCompositeConstruct %v4float %224 %224 %224 %224
297               OpImageWrite %46 %229 %230
298               OpReturn
299               OpFunctionEnd
300