[compute shader spirv] ; SPIR-V ; Version: 1.0 ; Generator: Google spiregg; 0 ; Bound: 93 ; Schema: 0 OpCapability Shader OpCapability SampledBuffer OpCapability ImageBuffer OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID OpExecutionMode %main LocalSize 32 1 1 OpSource HLSL 640 OpName %type_buffer_image "type.buffer.image" OpName %Weights "Weights" OpName %Group_DstLightIdWs "Group_DstLightIdWs" OpName %main "main" OpName %SCtx "SCtx" OpMemberName %SCtx 0 "iList" OpMemberName %SCtx 1 "LightId" OpMemberName %SCtx 2 "LightW" OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId OpDecorate %Weights DescriptorSet 0 OpDecorate %Weights Binding 0 %uint = OpTypeInt 32 0 %uint_4 = OpConstant %uint 4 %uint_16 = OpConstant %uint 16 %uint_0 = OpConstant %uint 0 %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %int_1 = OpConstant %int 1 %uint_1 = OpConstant %uint 1 %uint_123 = OpConstant %uint 123 %uint_16777215 = OpConstant %uint 16777215 %uint_24 = OpConstant %uint 24 %float = OpTypeFloat 32 %type_buffer_image = OpTypeImage %uint Buffer 0 0 0 2 R32ui %_ptr_UniformConstant_type_buffer_image = OpTypePointer UniformConstant %type_buffer_image %uint_512 = OpConstant %uint 512 %_arr_uint_uint_512 = OpTypeArray %uint %uint_512 %_ptr_Workgroup__arr_uint_uint_512 = OpTypePointer Workgroup %_arr_uint_uint_512 %v3uint = OpTypeVector %uint 3 %_ptr_Input_v3uint = OpTypePointer Input %v3uint %void = OpTypeVoid %26 = OpTypeFunction %void %_ptr_Function_uint = OpTypePointer Function %uint %SCtx = OpTypeStruct %uint %uint %float %_arr_SCtx_uint_4 = OpTypeArray %SCtx %uint_4 %_ptr_Function__arr_SCtx_uint_4 = OpTypePointer Function %_arr_SCtx_uint_4 %_ptr_Function_SCtx = OpTypePointer Function %SCtx %bool = OpTypeBool %_ptr_Workgroup_uint = OpTypePointer Workgroup %uint %v4uint = OpTypeVector %uint 4 %Weights = OpVariable %_ptr_UniformConstant_type_buffer_image UniformConstant %Group_DstLightIdWs = OpVariable %_ptr_Workgroup__arr_uint_uint_512 Workgroup %gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input %float_0_00392156886 = OpConstant %float 0.00392156886 %main = OpFunction %void None %26 %35 = OpLabel %36 = OpVariable %_ptr_Function__arr_SCtx_uint_4 Function %37 = OpLoad %v3uint %gl_GlobalInvocationID %38 = OpCompositeExtract %uint %37 0 %39 = OpIMul %uint %uint_16 %38 OpBranch %40 %40 = OpLabel %41 = OpPhi %uint %uint_0 %35 %42 %43 %44 = OpULessThan %bool %41 %uint_16 OpLoopMerge %45 %43 DontUnroll OpBranchConditional %44 %46 %45 %46 = OpLabel %47 = OpAccessChain %_ptr_Function_uint %36 %int_0 %int_1 %48 = OpLoad %uint %47 %49 = OpIAdd %uint %39 %41 %50 = OpAccessChain %_ptr_Workgroup_uint %Group_DstLightIdWs %49 OpStore %50 %48 OpBranch %51 %51 = OpLabel %52 = OpPhi %uint %uint_0 %46 %53 %54 %55 = OpULessThan %bool %52 %uint_4 OpLoopMerge %43 %54 None OpBranchConditional %55 %56 %43 %56 = OpLabel %57 = OpAccessChain %_ptr_Function_SCtx %36 %52 %58 = OpLoad %SCtx %57 %59 = OpCompositeExtract %uint %58 0 %60 = OpCompositeExtract %uint %58 1 %61 = OpCompositeExtract %float %58 2 OpBranch %62 %62 = OpLabel OpLoopMerge %54 %63 None OpBranch %64 %64 = OpLabel %65 = OpINotEqual %bool %48 %60 OpSelectionMerge %66 None OpBranchConditional %65 %67 %66 %67 = OpLabel OpBranch %54 %66 = OpLabel %68 = OpIAdd %uint %59 %uint_1 %69 = OpLoad %type_buffer_image %Weights %70 = OpImageRead %v4uint %69 %68 None %71 = OpCompositeExtract %uint %70 0 %72 = OpBitwiseAnd %uint %71 %uint_16777215 %73 = OpShiftRightLogical %uint %71 %uint_24 %74 = OpConvertUToF %float %73 %75 = OpFMul %float %74 %float_0_00392156886 OpBranch %54 %63 = OpLabel OpBranch %62 %54 = OpLabel %76 = OpPhi %uint %59 %67 %68 %66 %77 = OpPhi %uint %60 %67 %72 %66 %78 = OpPhi %float %61 %67 %75 %66 %79 = OpCompositeConstruct %SCtx %76 %77 %78 OpStore %57 %79 %53 = OpIAdd %uint %52 %uint_1 OpBranch %51 %43 = OpLabel %42 = OpIAdd %uint %41 %uint_1 OpBranch %40 %45 = OpLabel %80 = OpULessThan %bool %38 %uint_123 OpSelectionMerge %81 None OpBranchConditional %80 %82 %81 %82 = OpLabel OpBranch %83 %83 = OpLabel %84 = OpPhi %uint %uint_0 %82 %85 %86 %87 = OpULessThan %bool %84 %uint_16 OpLoopMerge %88 %86 None OpBranchConditional %87 %86 %88 %86 = OpLabel %89 = OpIAdd %uint %39 %84 %90 = OpAccessChain %_ptr_Workgroup_uint %Group_DstLightIdWs %89 %91 = OpLoad %uint %90 %92 = OpLoad %type_buffer_image %Weights OpImageWrite %92 %89 %91 None %85 = OpIAdd %uint %84 %uint_1 OpBranch %83 %88 = OpLabel OpBranch %81 %81 = OpLabel OpReturn OpFunctionEnd [test] compute 32 1 1