; SPIR-V ; Version: 1.3 ; Generator: Google Tint Compiler; 0 ; Bound: 515 ; Schema: 0 OpCapability Shader %145 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %computeMain "computeMain" %global_id_1 OpExecutionMode %computeMain LocalSize 4 4 4 OpName %global_id_1 "global_id_1" OpName %Tables "Tables" OpMemberName %Tables 0 "edges" OpMemberName %Tables 1 "tris" OpName %tables "tables" OpName %IsosurfaceVolume "IsosurfaceVolume" OpMemberName %IsosurfaceVolume 0 "min" OpMemberName %IsosurfaceVolume 1 "max" OpMemberName %IsosurfaceVolume 2 "step" OpMemberName %IsosurfaceVolume 3 "size" OpMemberName %IsosurfaceVolume 4 "threshold" OpMemberName %IsosurfaceVolume 5 "values" OpName %volume "volume" OpName %PositionBuffer "PositionBuffer" OpMemberName %PositionBuffer 0 "values" OpName %positionsOut "positionsOut" OpName %NormalBuffer "NormalBuffer" OpMemberName %NormalBuffer 0 "values" OpName %normalsOut "normalsOut" OpName %IndexBuffer "IndexBuffer" OpMemberName %IndexBuffer 0 "tris" OpName %indicesOut "indicesOut" OpName %DrawIndirectArgs "DrawIndirectArgs" OpMemberName %DrawIndirectArgs 0 "vc" OpMemberName %DrawIndirectArgs 1 "vertexCount" OpMemberName %DrawIndirectArgs 2 "firstVertex" OpMemberName %DrawIndirectArgs 3 "firstInstance" OpMemberName %DrawIndirectArgs 4 "indexCount" OpMemberName %DrawIndirectArgs 5 "indexedInstanceCount" OpMemberName %DrawIndirectArgs 6 "indexedFirstIndex" OpMemberName %DrawIndirectArgs 7 "indexedBaseVertex" OpMemberName %DrawIndirectArgs 8 "indexedFirstInstance" OpName %drawOut "drawOut" OpName %positions "positions" OpName %normals "normals" OpName %indices "indices" OpName %cubeVerts "cubeVerts" OpName %valueAt "valueAt" OpName %index "index" OpName %positionAt "positionAt" OpName %index_0 "index" OpName %normalAt "normalAt" OpName %index_1 "index" OpName %interpX "interpX" OpName %index_2 "index" OpName %i "i" OpName %va "va" OpName %vb "vb" OpName %interpY "interpY" OpName %index_3 "index" OpName %i_0 "i" OpName %va_0 "va" OpName %vb_0 "vb" OpName %interpZ "interpZ" OpName %index_4 "index" OpName %i_1 "i" OpName %va_1 "va" OpName %vb_1 "vb" OpName %computeMain_inner "computeMain_inner" OpName %global_id "global_id" OpName %cubeIndex "cubeIndex" OpName %firstVertex "firstVertex" OpName %i_2 "i" OpName %i_3 "i" OpName %i_4 "i" OpName %computeMain "computeMain" OpDecorate %global_id_1 BuiltIn GlobalInvocationId OpDecorate %Tables Block OpMemberDecorate %Tables 0 Offset 0 OpDecorate %_arr_uint_uint_256 ArrayStride 4 OpMemberDecorate %Tables 1 Offset 1024 OpDecorate %_arr_int_uint_4096 ArrayStride 4 OpDecorate %tables NonWritable OpDecorate %tables DescriptorSet 0 OpDecorate %tables Binding 0 OpDecorate %IsosurfaceVolume Block OpMemberDecorate %IsosurfaceVolume 0 Offset 0 OpMemberDecorate %IsosurfaceVolume 1 Offset 16 OpMemberDecorate %IsosurfaceVolume 2 Offset 32 OpMemberDecorate %IsosurfaceVolume 3 Offset 48 OpMemberDecorate %IsosurfaceVolume 4 Offset 60 OpMemberDecorate %IsosurfaceVolume 5 Offset 64 OpDecorate %_runtimearr_float ArrayStride 4 OpDecorate %volume NonReadable OpDecorate %volume DescriptorSet 0 OpDecorate %volume Binding 1 OpDecorate %PositionBuffer Block OpMemberDecorate %PositionBuffer 0 Offset 0 OpDecorate %positionsOut NonReadable OpDecorate %positionsOut DescriptorSet 0 OpDecorate %positionsOut Binding 2 OpDecorate %NormalBuffer Block OpMemberDecorate %NormalBuffer 0 Offset 0 OpDecorate %normalsOut NonReadable OpDecorate %normalsOut DescriptorSet 0 OpDecorate %normalsOut Binding 3 OpDecorate %IndexBuffer Block OpMemberDecorate %IndexBuffer 0 Offset 0 OpDecorate %_runtimearr_uint ArrayStride 4 OpDecorate %indicesOut NonReadable OpDecorate %indicesOut DescriptorSet 0 OpDecorate %indicesOut Binding 4 OpDecorate %DrawIndirectArgs Block OpMemberDecorate %DrawIndirectArgs 0 Offset 0 OpMemberDecorate %DrawIndirectArgs 1 Offset 4 OpMemberDecorate %DrawIndirectArgs 2 Offset 8 OpMemberDecorate %DrawIndirectArgs 3 Offset 12 OpMemberDecorate %DrawIndirectArgs 4 Offset 16 OpMemberDecorate %DrawIndirectArgs 5 Offset 20 OpMemberDecorate %DrawIndirectArgs 6 Offset 24 OpMemberDecorate %DrawIndirectArgs 7 Offset 28 OpMemberDecorate %DrawIndirectArgs 8 Offset 32 OpDecorate %drawOut DescriptorSet 0 OpDecorate %drawOut Binding 5 OpDecorate %_arr_v3float_uint_12 ArrayStride 16 OpDecorate %_arr_uint_uint_12 ArrayStride 4 %uint = OpTypeInt 32 0 %v3uint = OpTypeVector %uint 3 %_ptr_Input_v3uint = OpTypePointer Input %v3uint %global_id_1 = OpVariable %_ptr_Input_v3uint Input %uint_256 = OpConstant %uint 256 %_arr_uint_uint_256 = OpTypeArray %uint %uint_256 %int = OpTypeInt 32 1 %uint_4096 = OpConstant %uint 4096 %_arr_int_uint_4096 = OpTypeArray %int %uint_4096 %Tables = OpTypeStruct %_arr_uint_uint_256 %_arr_int_uint_4096 %_ptr_StorageBuffer_Tables = OpTypePointer StorageBuffer %Tables %tables = OpVariable %_ptr_StorageBuffer_Tables StorageBuffer %float = OpTypeFloat 32 %v3float = OpTypeVector %float 3 %_runtimearr_float = OpTypeRuntimeArray %float %IsosurfaceVolume = OpTypeStruct %v3float %v3float %v3float %v3uint %float %_runtimearr_float %_ptr_StorageBuffer_IsosurfaceVolume = OpTypePointer StorageBuffer %IsosurfaceVolume %volume = OpVariable %_ptr_StorageBuffer_IsosurfaceVolume StorageBuffer %PositionBuffer = OpTypeStruct %_runtimearr_float %_ptr_StorageBuffer_PositionBuffer = OpTypePointer StorageBuffer %PositionBuffer %positionsOut = OpVariable %_ptr_StorageBuffer_PositionBuffer StorageBuffer %NormalBuffer = OpTypeStruct %_runtimearr_float %_ptr_StorageBuffer_NormalBuffer = OpTypePointer StorageBuffer %NormalBuffer %normalsOut = OpVariable %_ptr_StorageBuffer_NormalBuffer StorageBuffer %_runtimearr_uint = OpTypeRuntimeArray %uint %IndexBuffer = OpTypeStruct %_runtimearr_uint %_ptr_StorageBuffer_IndexBuffer = OpTypePointer StorageBuffer %IndexBuffer %indicesOut = OpVariable %_ptr_StorageBuffer_IndexBuffer StorageBuffer %DrawIndirectArgs = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint %uint %uint %_ptr_StorageBuffer_DrawIndirectArgs = OpTypePointer StorageBuffer %DrawIndirectArgs %drawOut = OpVariable %_ptr_StorageBuffer_DrawIndirectArgs StorageBuffer %uint_12 = OpConstant %uint 12 %_arr_v3float_uint_12 = OpTypeArray %v3float %uint_12 %_ptr_Private__arr_v3float_uint_12 = OpTypePointer Private %_arr_v3float_uint_12 %36 = OpConstantNull %_arr_v3float_uint_12 %positions = OpVariable %_ptr_Private__arr_v3float_uint_12 Private %36 %normals = OpVariable %_ptr_Private__arr_v3float_uint_12 Private %36 %_arr_uint_uint_12 = OpTypeArray %uint %uint_12 %_ptr_Private__arr_uint_uint_12 = OpTypePointer Private %_arr_uint_uint_12 %41 = OpConstantNull %_arr_uint_uint_12 %indices = OpVariable %_ptr_Private__arr_uint_uint_12 Private %41 %uint_0 = OpConstant %uint 0 %_ptr_Private_uint = OpTypePointer Private %uint %cubeVerts = OpVariable %_ptr_Private_uint Private %uint_0 %45 = OpTypeFunction %float %v3uint %bool = OpTypeBool %uint_3 = OpConstant %uint 3 %_ptr_StorageBuffer_v3uint = OpTypePointer StorageBuffer %v3uint %v3bool = OpTypeVector %bool 3 %float_0 = OpConstant %float 0 %_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint %uint_1 = OpConstant %uint 1 %uint_5 = OpConstant %uint 5 %_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float %80 = OpTypeFunction %v3float %v3uint %_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float %uint_2 = OpConstant %uint 2 %98 = OpConstantComposite %v3uint %uint_1 %uint_0 %uint_0 %104 = OpConstantComposite %v3uint %uint_0 %uint_1 %uint_0 %110 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_1 %void = OpTypeVoid %116 = OpTypeFunction %void %uint %v3uint %float %float %uint_4 = OpConstant %uint 4 %_ptr_Private_v3float = OpTypePointer Private %v3float %211 = OpTypeFunction %void %v3uint %216 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_0 %220 = OpConstantComposite %v3uint %uint_1 %uint_0 %uint_1 %222 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1 %224 = OpConstantComposite %v3uint %uint_0 %uint_1 %uint_1 %_ptr_Function_uint = OpTypePointer Function %uint %236 = OpConstantNull %uint %uint_8 = OpConstant %uint 8 %uint_16 = OpConstant %uint 16 %uint_32 = OpConstant %uint 32 %uint_64 = OpConstant %uint 64 %uint_128 = OpConstant %uint 128 %uint_6 = OpConstant %uint 6 %uint_7 = OpConstant %uint 7 %uint_512 = OpConstant %uint 512 %uint_9 = OpConstant %uint 9 %uint_1024 = OpConstant %uint 1024 %uint_10 = OpConstant %uint 10 %uint_2048 = OpConstant %uint 2048 %uint_11 = OpConstant %uint 11 %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int %_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint %uint_15 = OpConstant %uint 15 %_ptr_Private_float = OpTypePointer Private %float %510 = OpTypeFunction %void %valueAt = OpFunction %float None %45 %index = OpFunctionParameter %v3uint %48 = OpLabel %53 = OpAccessChain %_ptr_StorageBuffer_v3uint %volume %uint_3 %54 = OpLoad %v3uint %53 %55 = OpUGreaterThanEqual %v3bool %index %54 %49 = OpAny %bool %55 OpSelectionMerge %57 None OpBranchConditional %49 %58 %57 %58 = OpLabel OpReturnValue %float_0 %57 = OpLabel %60 = OpCompositeExtract %uint %index 0 %61 = OpCompositeExtract %uint %index 1 %63 = OpAccessChain %_ptr_StorageBuffer_uint %volume %uint_3 %uint_0 %64 = OpLoad %uint %63 %65 = OpIMul %uint %61 %64 %66 = OpIAdd %uint %60 %65 %67 = OpCompositeExtract %uint %index 2 %68 = OpAccessChain %_ptr_StorageBuffer_uint %volume %uint_3 %uint_0 %69 = OpLoad %uint %68 %70 = OpIMul %uint %67 %69 %72 = OpAccessChain %_ptr_StorageBuffer_uint %volume %uint_3 %uint_1 %73 = OpLoad %uint %72 %74 = OpIMul %uint %70 %73 %75 = OpIAdd %uint %66 %74 %78 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_5 %75 %79 = OpLoad %float %78 OpReturnValue %79 OpFunctionEnd %positionAt = OpFunction %v3float None %80 %index_0 = OpFunctionParameter %v3uint %83 = OpLabel %85 = OpAccessChain %_ptr_StorageBuffer_v3float %volume %uint_0 %86 = OpLoad %v3float %85 %88 = OpAccessChain %_ptr_StorageBuffer_v3float %volume %uint_2 %89 = OpLoad %v3float %88 %91 = OpVectorShuffle %v3uint %index_0 %index_0 0 1 2 %90 = OpConvertUToF %v3float %91 %92 = OpFMul %v3float %89 %90 %93 = OpFAdd %v3float %86 %92 OpReturnValue %93 OpFunctionEnd %normalAt = OpFunction %v3float None %80 %index_1 = OpFunctionParameter %v3uint %96 = OpLabel %99 = OpISub %v3uint %index_1 %98 %97 = OpFunctionCall %float %valueAt %99 %101 = OpIAdd %v3uint %index_1 %98 %100 = OpFunctionCall %float %valueAt %101 %102 = OpFSub %float %97 %100 %105 = OpISub %v3uint %index_1 %104 %103 = OpFunctionCall %float %valueAt %105 %107 = OpIAdd %v3uint %index_1 %104 %106 = OpFunctionCall %float %valueAt %107 %108 = OpFSub %float %103 %106 %111 = OpISub %v3uint %index_1 %110 %109 = OpFunctionCall %float %valueAt %111 %113 = OpIAdd %v3uint %index_1 %110 %112 = OpFunctionCall %float %valueAt %113 %114 = OpFSub %float %109 %112 %115 = OpCompositeConstruct %v3float %102 %108 %114 OpReturnValue %115 OpFunctionEnd %interpX = OpFunction %void None %116 %index_2 = OpFunctionParameter %uint %i = OpFunctionParameter %v3uint %va = OpFunctionParameter %float %vb = OpFunctionParameter %float %123 = OpLabel %125 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %126 = OpLoad %float %125 %127 = OpFSub %float %126 %va %128 = OpFSub %float %vb %va %129 = OpFDiv %float %127 %128 %130 = OpLoad %uint %cubeVerts %132 = OpAccessChain %_ptr_Private_v3float %positions %130 %133 = OpFunctionCall %v3float %positionAt %i %134 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_2 %uint_0 %135 = OpLoad %float %134 %136 = OpFMul %float %135 %129 %137 = OpCompositeConstruct %v3float %136 %float_0 %float_0 %138 = OpFAdd %v3float %133 %137 OpStore %132 %138 %139 = OpFunctionCall %v3float %normalAt %i %141 = OpIAdd %v3uint %i %98 %140 = OpFunctionCall %v3float %normalAt %141 %142 = OpLoad %uint %cubeVerts %143 = OpAccessChain %_ptr_Private_v3float %normals %142 %146 = OpCompositeConstruct %v3float %129 %129 %129 %144 = OpExtInst %v3float %145 FMix %139 %140 %146 OpStore %143 %144 %147 = OpAccessChain %_ptr_Private_uint %indices %index_2 %148 = OpLoad %uint %cubeVerts OpStore %147 %148 %149 = OpLoad %uint %cubeVerts %150 = OpIAdd %uint %149 %uint_1 OpStore %cubeVerts %150 OpReturn OpFunctionEnd %interpY = OpFunction %void None %116 %index_3 = OpFunctionParameter %uint %i_0 = OpFunctionParameter %v3uint %va_0 = OpFunctionParameter %float %vb_0 = OpFunctionParameter %float %156 = OpLabel %157 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %158 = OpLoad %float %157 %159 = OpFSub %float %158 %va_0 %160 = OpFSub %float %vb_0 %va_0 %161 = OpFDiv %float %159 %160 %162 = OpLoad %uint %cubeVerts %163 = OpAccessChain %_ptr_Private_v3float %positions %162 %164 = OpFunctionCall %v3float %positionAt %i_0 %165 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_2 %uint_1 %166 = OpLoad %float %165 %167 = OpFMul %float %166 %161 %168 = OpCompositeConstruct %v3float %float_0 %167 %float_0 %169 = OpFAdd %v3float %164 %168 OpStore %163 %169 %170 = OpFunctionCall %v3float %normalAt %i_0 %172 = OpIAdd %v3uint %i_0 %104 %171 = OpFunctionCall %v3float %normalAt %172 %173 = OpLoad %uint %cubeVerts %174 = OpAccessChain %_ptr_Private_v3float %normals %173 %176 = OpCompositeConstruct %v3float %161 %161 %161 %175 = OpExtInst %v3float %145 FMix %170 %171 %176 OpStore %174 %175 %177 = OpAccessChain %_ptr_Private_uint %indices %index_3 %178 = OpLoad %uint %cubeVerts OpStore %177 %178 %179 = OpLoad %uint %cubeVerts %180 = OpIAdd %uint %179 %uint_1 OpStore %cubeVerts %180 OpReturn OpFunctionEnd %interpZ = OpFunction %void None %116 %index_4 = OpFunctionParameter %uint %i_1 = OpFunctionParameter %v3uint %va_1 = OpFunctionParameter %float %vb_1 = OpFunctionParameter %float %186 = OpLabel %187 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %188 = OpLoad %float %187 %189 = OpFSub %float %188 %va_1 %190 = OpFSub %float %vb_1 %va_1 %191 = OpFDiv %float %189 %190 %192 = OpLoad %uint %cubeVerts %193 = OpAccessChain %_ptr_Private_v3float %positions %192 %194 = OpFunctionCall %v3float %positionAt %i_1 %195 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_2 %uint_2 %196 = OpLoad %float %195 %197 = OpFMul %float %196 %191 %198 = OpCompositeConstruct %v3float %float_0 %float_0 %197 %199 = OpFAdd %v3float %194 %198 OpStore %193 %199 %200 = OpFunctionCall %v3float %normalAt %i_1 %202 = OpIAdd %v3uint %i_1 %110 %201 = OpFunctionCall %v3float %normalAt %202 %203 = OpLoad %uint %cubeVerts %204 = OpAccessChain %_ptr_Private_v3float %normals %203 %206 = OpCompositeConstruct %v3float %191 %191 %191 %205 = OpExtInst %v3float %145 FMix %200 %201 %206 OpStore %204 %205 %207 = OpAccessChain %_ptr_Private_uint %indices %index_4 %208 = OpLoad %uint %cubeVerts OpStore %207 %208 %209 = OpLoad %uint %cubeVerts %210 = OpIAdd %uint %209 %uint_1 OpStore %cubeVerts %210 OpReturn OpFunctionEnd %computeMain_inner = OpFunction %void None %211 %global_id = OpFunctionParameter %v3uint %214 = OpLabel %cubeIndex = OpVariable %_ptr_Function_uint Function %236 %firstVertex = OpVariable %_ptr_Function_uint Function %236 %i_2 = OpVariable %_ptr_Function_uint Function %236 %i_3 = OpVariable %_ptr_Function_uint Function %236 %i_4 = OpVariable %_ptr_Function_uint Function %236 %215 = OpIAdd %v3uint %global_id %98 %217 = OpIAdd %v3uint %global_id %216 %218 = OpIAdd %v3uint %global_id %104 %219 = OpIAdd %v3uint %global_id %110 %221 = OpIAdd %v3uint %global_id %220 %223 = OpIAdd %v3uint %global_id %222 %225 = OpIAdd %v3uint %global_id %224 %226 = OpFunctionCall %float %valueAt %global_id %227 = OpFunctionCall %float %valueAt %215 %228 = OpFunctionCall %float %valueAt %217 %229 = OpFunctionCall %float %valueAt %218 %230 = OpFunctionCall %float %valueAt %219 %231 = OpFunctionCall %float %valueAt %221 %232 = OpFunctionCall %float %valueAt %223 %233 = OpFunctionCall %float %valueAt %225 OpStore %cubeIndex %uint_0 %237 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %238 = OpLoad %float %237 %239 = OpFOrdLessThan %bool %226 %238 OpSelectionMerge %240 None OpBranchConditional %239 %241 %240 %241 = OpLabel %242 = OpLoad %uint %cubeIndex %243 = OpBitwiseOr %uint %242 %uint_1 OpStore %cubeIndex %243 OpBranch %240 %240 = OpLabel %244 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %245 = OpLoad %float %244 %246 = OpFOrdLessThan %bool %227 %245 OpSelectionMerge %247 None OpBranchConditional %246 %248 %247 %248 = OpLabel %249 = OpLoad %uint %cubeIndex %250 = OpBitwiseOr %uint %249 %uint_2 OpStore %cubeIndex %250 OpBranch %247 %247 = OpLabel %251 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %252 = OpLoad %float %251 %253 = OpFOrdLessThan %bool %228 %252 OpSelectionMerge %254 None OpBranchConditional %253 %255 %254 %255 = OpLabel %256 = OpLoad %uint %cubeIndex %257 = OpBitwiseOr %uint %256 %uint_4 OpStore %cubeIndex %257 OpBranch %254 %254 = OpLabel %258 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %259 = OpLoad %float %258 %260 = OpFOrdLessThan %bool %229 %259 OpSelectionMerge %261 None OpBranchConditional %260 %262 %261 %262 = OpLabel %263 = OpLoad %uint %cubeIndex %265 = OpBitwiseOr %uint %263 %uint_8 OpStore %cubeIndex %265 OpBranch %261 %261 = OpLabel %266 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %267 = OpLoad %float %266 %268 = OpFOrdLessThan %bool %230 %267 OpSelectionMerge %269 None OpBranchConditional %268 %270 %269 %270 = OpLabel %271 = OpLoad %uint %cubeIndex %273 = OpBitwiseOr %uint %271 %uint_16 OpStore %cubeIndex %273 OpBranch %269 %269 = OpLabel %274 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %275 = OpLoad %float %274 %276 = OpFOrdLessThan %bool %231 %275 OpSelectionMerge %277 None OpBranchConditional %276 %278 %277 %278 = OpLabel %279 = OpLoad %uint %cubeIndex %281 = OpBitwiseOr %uint %279 %uint_32 OpStore %cubeIndex %281 OpBranch %277 %277 = OpLabel %282 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %283 = OpLoad %float %282 %284 = OpFOrdLessThan %bool %232 %283 OpSelectionMerge %285 None OpBranchConditional %284 %286 %285 %286 = OpLabel %287 = OpLoad %uint %cubeIndex %289 = OpBitwiseOr %uint %287 %uint_64 OpStore %cubeIndex %289 OpBranch %285 %285 = OpLabel %290 = OpAccessChain %_ptr_StorageBuffer_float %volume %uint_4 %291 = OpLoad %float %290 %292 = OpFOrdLessThan %bool %233 %291 OpSelectionMerge %293 None OpBranchConditional %292 %294 %293 %294 = OpLabel %295 = OpLoad %uint %cubeIndex %297 = OpBitwiseOr %uint %295 %uint_128 OpStore %cubeIndex %297 OpBranch %293 %293 = OpLabel %298 = OpLoad %uint %cubeIndex %299 = OpAccessChain %_ptr_StorageBuffer_uint %tables %uint_0 %298 %300 = OpLoad %uint %299 %301 = OpBitwiseAnd %uint %300 %uint_1 %302 = OpINotEqual %bool %301 %uint_0 OpSelectionMerge %303 None OpBranchConditional %302 %304 %303 %304 = OpLabel %305 = OpFunctionCall %void %interpX %uint_0 %global_id %226 %227 OpBranch %303 %303 = OpLabel %306 = OpBitwiseAnd %uint %300 %uint_2 %307 = OpINotEqual %bool %306 %uint_0 OpSelectionMerge %308 None OpBranchConditional %307 %309 %308 %309 = OpLabel %310 = OpFunctionCall %void %interpY %uint_1 %215 %227 %228 OpBranch %308 %308 = OpLabel %311 = OpBitwiseAnd %uint %300 %uint_4 %312 = OpINotEqual %bool %311 %uint_0 OpSelectionMerge %313 None OpBranchConditional %312 %314 %313 %314 = OpLabel %315 = OpFunctionCall %void %interpX %uint_2 %218 %229 %228 OpBranch %313 %313 = OpLabel %316 = OpBitwiseAnd %uint %300 %uint_8 %317 = OpINotEqual %bool %316 %uint_0 OpSelectionMerge %318 None OpBranchConditional %317 %319 %318 %319 = OpLabel %320 = OpFunctionCall %void %interpY %uint_3 %global_id %226 %229 OpBranch %318 %318 = OpLabel %321 = OpBitwiseAnd %uint %300 %uint_16 %322 = OpINotEqual %bool %321 %uint_0 OpSelectionMerge %323 None OpBranchConditional %322 %324 %323 %324 = OpLabel %325 = OpFunctionCall %void %interpX %uint_4 %219 %230 %231 OpBranch %323 %323 = OpLabel %326 = OpBitwiseAnd %uint %300 %uint_32 %327 = OpINotEqual %bool %326 %uint_0 OpSelectionMerge %328 None OpBranchConditional %327 %329 %328 %329 = OpLabel %330 = OpFunctionCall %void %interpY %uint_5 %221 %231 %232 OpBranch %328 %328 = OpLabel %331 = OpBitwiseAnd %uint %300 %uint_64 %332 = OpINotEqual %bool %331 %uint_0 OpSelectionMerge %333 None OpBranchConditional %332 %334 %333 %334 = OpLabel %335 = OpFunctionCall %void %interpX %uint_6 %225 %233 %232 OpBranch %333 %333 = OpLabel %337 = OpBitwiseAnd %uint %300 %uint_128 %338 = OpINotEqual %bool %337 %uint_0 OpSelectionMerge %339 None OpBranchConditional %338 %340 %339 %340 = OpLabel %341 = OpFunctionCall %void %interpY %uint_7 %219 %230 %233 OpBranch %339 %339 = OpLabel %343 = OpBitwiseAnd %uint %300 %uint_256 %344 = OpINotEqual %bool %343 %uint_0 OpSelectionMerge %345 None OpBranchConditional %344 %346 %345 %346 = OpLabel %347 = OpFunctionCall %void %interpZ %uint_8 %global_id %226 %230 OpBranch %345 %345 = OpLabel %349 = OpBitwiseAnd %uint %300 %uint_512 %350 = OpINotEqual %bool %349 %uint_0 OpSelectionMerge %351 None OpBranchConditional %350 %352 %351 %352 = OpLabel %353 = OpFunctionCall %void %interpZ %uint_9 %215 %227 %231 OpBranch %351 %351 = OpLabel %356 = OpBitwiseAnd %uint %300 %uint_1024 %357 = OpINotEqual %bool %356 %uint_0 OpSelectionMerge %358 None OpBranchConditional %357 %359 %358 %359 = OpLabel %360 = OpFunctionCall %void %interpZ %uint_10 %217 %228 %232 OpBranch %358 %358 = OpLabel %363 = OpBitwiseAnd %uint %300 %uint_2048 %364 = OpINotEqual %bool %363 %uint_0 OpSelectionMerge %365 None OpBranchConditional %364 %366 %365 %366 = OpLabel %367 = OpFunctionCall %void %interpZ %uint_11 %218 %229 %233 OpBranch %365 %365 = OpLabel %369 = OpLoad %uint %cubeIndex %370 = OpShiftLeftLogical %uint %369 %uint_4 %371 = OpIAdd %uint %370 %uint_1 %373 = OpISub %uint %371 %uint_1 %375 = OpAccessChain %_ptr_StorageBuffer_int %tables %uint_1 %373 %376 = OpLoad %int %375 %372 = OpBitcast %uint %376 %380 = OpAccessChain %_ptr_StorageBuffer_uint_0 %drawOut %uint_1 %381 = OpLoad %uint %cubeVerts %377 = OpAtomicIAdd %uint %380 %uint_1 %uint_0 %381 OpStore %firstVertex %377 %383 = OpCompositeExtract %uint %global_id 0 %384 = OpCompositeExtract %uint %global_id 1 %385 = OpAccessChain %_ptr_StorageBuffer_uint %volume %uint_3 %uint_0 %386 = OpLoad %uint %385 %387 = OpIMul %uint %384 %386 %388 = OpIAdd %uint %383 %387 %389 = OpCompositeExtract %uint %global_id 2 %390 = OpAccessChain %_ptr_StorageBuffer_uint %volume %uint_3 %uint_0 %391 = OpLoad %uint %390 %392 = OpIMul %uint %389 %391 %393 = OpAccessChain %_ptr_StorageBuffer_uint %volume %uint_3 %uint_1 %394 = OpLoad %uint %393 %395 = OpIMul %uint %392 %394 %396 = OpIAdd %uint %388 %395 %398 = OpIMul %uint %396 %uint_15 OpStore %i_2 %uint_0 OpBranch %400 %400 = OpLabel OpLoopMerge %401 %402 None OpBranch %403 %403 = OpLabel %405 = OpLoad %uint %i_2 %406 = OpLoad %uint %cubeVerts %407 = OpULessThan %bool %405 %406 %404 = OpLogicalNot %bool %407 OpSelectionMerge %408 None OpBranchConditional %404 %409 %408 %409 = OpLabel OpBranch %401 %408 = OpLabel %410 = OpLoad %uint %firstVertex %411 = OpIMul %uint %410 %uint_3 %412 = OpLoad %uint %i_2 %413 = OpIMul %uint %412 %uint_3 %414 = OpIAdd %uint %411 %413 %415 = OpAccessChain %_ptr_StorageBuffer_float %positionsOut %uint_0 %414 %416 = OpLoad %uint %i_2 %418 = OpAccessChain %_ptr_Private_float %positions %416 %uint_0 %419 = OpLoad %float %418 OpStore %415 %419 %420 = OpLoad %uint %firstVertex %421 = OpIMul %uint %420 %uint_3 %422 = OpLoad %uint %i_2 %423 = OpIMul %uint %422 %uint_3 %424 = OpIAdd %uint %421 %423 %425 = OpIAdd %uint %424 %uint_1 %426 = OpAccessChain %_ptr_StorageBuffer_float %positionsOut %uint_0 %425 %427 = OpLoad %uint %i_2 %428 = OpAccessChain %_ptr_Private_float %positions %427 %uint_1 %429 = OpLoad %float %428 OpStore %426 %429 %430 = OpLoad %uint %firstVertex %431 = OpIMul %uint %430 %uint_3 %432 = OpLoad %uint %i_2 %433 = OpIMul %uint %432 %uint_3 %434 = OpIAdd %uint %431 %433 %435 = OpIAdd %uint %434 %uint_2 %436 = OpAccessChain %_ptr_StorageBuffer_float %positionsOut %uint_0 %435 %437 = OpLoad %uint %i_2 %438 = OpAccessChain %_ptr_Private_float %positions %437 %uint_2 %439 = OpLoad %float %438 OpStore %436 %439 %440 = OpLoad %uint %firstVertex %441 = OpIMul %uint %440 %uint_3 %442 = OpLoad %uint %i_2 %443 = OpIMul %uint %442 %uint_3 %444 = OpIAdd %uint %441 %443 %445 = OpAccessChain %_ptr_StorageBuffer_float %normalsOut %uint_0 %444 %446 = OpLoad %uint %i_2 %447 = OpAccessChain %_ptr_Private_float %normals %446 %uint_0 %448 = OpLoad %float %447 OpStore %445 %448 %449 = OpLoad %uint %firstVertex %450 = OpIMul %uint %449 %uint_3 %451 = OpLoad %uint %i_2 %452 = OpIMul %uint %451 %uint_3 %453 = OpIAdd %uint %450 %452 %454 = OpIAdd %uint %453 %uint_1 %455 = OpAccessChain %_ptr_StorageBuffer_float %normalsOut %uint_0 %454 %456 = OpLoad %uint %i_2 %457 = OpAccessChain %_ptr_Private_float %normals %456 %uint_1 %458 = OpLoad %float %457 OpStore %455 %458 %459 = OpLoad %uint %firstVertex %460 = OpIMul %uint %459 %uint_3 %461 = OpLoad %uint %i_2 %462 = OpIMul %uint %461 %uint_3 %463 = OpIAdd %uint %460 %462 %464 = OpIAdd %uint %463 %uint_2 %465 = OpAccessChain %_ptr_StorageBuffer_float %normalsOut %uint_0 %464 %466 = OpLoad %uint %i_2 %467 = OpAccessChain %_ptr_Private_float %normals %466 %uint_2 %468 = OpLoad %float %467 OpStore %465 %468 OpBranch %402 %402 = OpLabel %469 = OpLoad %uint %i_2 %470 = OpIAdd %uint %469 %uint_1 OpStore %i_2 %470 OpBranch %400 %401 = OpLabel OpStore %i_3 %uint_0 OpBranch %472 %472 = OpLabel OpLoopMerge %473 %474 None OpBranch %475 %475 = OpLabel %477 = OpLoad %uint %i_3 %478 = OpULessThan %bool %477 %372 %476 = OpLogicalNot %bool %478 OpSelectionMerge %479 None OpBranchConditional %476 %480 %479 %480 = OpLabel OpBranch %473 %479 = OpLabel %481 = OpLoad %uint %i_3 %482 = OpIAdd %uint %371 %481 %483 = OpAccessChain %_ptr_StorageBuffer_int %tables %uint_1 %482 %484 = OpLoad %int %483 %485 = OpLoad %uint %i_3 %486 = OpIAdd %uint %398 %485 %487 = OpAccessChain %_ptr_StorageBuffer_uint %indicesOut %uint_0 %486 %488 = OpLoad %uint %firstVertex %489 = OpAccessChain %_ptr_Private_uint %indices %484 %490 = OpLoad %uint %489 %491 = OpIAdd %uint %488 %490 OpStore %487 %491 OpBranch %474 %474 = OpLabel %492 = OpLoad %uint %i_3 %493 = OpIAdd %uint %492 %uint_1 OpStore %i_3 %493 OpBranch %472 %473 = OpLabel OpStore %i_4 %372 OpBranch %495 %495 = OpLabel OpLoopMerge %496 %497 None OpBranch %498 %498 = OpLabel %500 = OpLoad %uint %i_4 %501 = OpULessThan %bool %500 %uint_15 %499 = OpLogicalNot %bool %501 OpSelectionMerge %502 None OpBranchConditional %499 %503 %502 %503 = OpLabel OpBranch %496 %502 = OpLabel %504 = OpLoad %uint %i_4 %505 = OpIAdd %uint %398 %504 %506 = OpAccessChain %_ptr_StorageBuffer_uint %indicesOut %uint_0 %505 %507 = OpLoad %uint %firstVertex OpStore %506 %507 OpBranch %497 %497 = OpLabel %508 = OpLoad %uint %i_4 %509 = OpIAdd %uint %508 %uint_1 OpStore %i_4 %509 OpBranch %495 %496 = OpLabel OpReturn OpFunctionEnd %computeMain = OpFunction %void None %510 %512 = OpLabel %514 = OpLoad %v3uint %global_id_1 %513 = OpFunctionCall %void %computeMain_inner %514 OpReturn OpFunctionEnd