OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" %sk_GlobalInvocationID %sk_LocalInvocationID %sk_LocalInvocationIndex %sk_NumWorkgroups %sk_WorkgroupID OpExecutionMode %main LocalSize 64 1 1 OpName %outputs "outputs" OpMemberName %outputs 0 "outputBuffer" OpName %sk_GlobalInvocationID "sk_GlobalInvocationID" OpName %sk_LocalInvocationID "sk_LocalInvocationID" OpName %sk_LocalInvocationIndex "sk_LocalInvocationIndex" OpName %sk_NumWorkgroups "sk_NumWorkgroups" OpName %sk_WorkgroupID "sk_WorkgroupID" OpName %helper_I "helper_I" OpName %main "main" OpDecorate %_runtimearr_uint ArrayStride 16 OpMemberDecorate %outputs 0 Offset 0 OpDecorate %outputs BufferBlock OpDecorate %4 Binding 0 OpDecorate %4 DescriptorSet 0 OpDecorate %sk_GlobalInvocationID BuiltIn GlobalInvocationId OpDecorate %sk_LocalInvocationID BuiltIn LocalInvocationId OpDecorate %sk_LocalInvocationIndex BuiltIn LocalInvocationIndex OpDecorate %sk_NumWorkgroups BuiltIn NumWorkgroups OpDecorate %sk_WorkgroupID BuiltIn WorkgroupId %uint = OpTypeInt 32 0 %_runtimearr_uint = OpTypeRuntimeArray %uint %outputs = OpTypeStruct %_runtimearr_uint %_ptr_Uniform_outputs = OpTypePointer Uniform %outputs %4 = OpVariable %_ptr_Uniform_outputs Uniform %v3uint = OpTypeVector %uint 3 %_ptr_Input_v3uint = OpTypePointer Input %v3uint %sk_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input %sk_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input %_ptr_Input_uint = OpTypePointer Input %uint %sk_LocalInvocationIndex = OpVariable %_ptr_Input_uint Input %sk_NumWorkgroups = OpVariable %_ptr_Input_v3uint Input %sk_WorkgroupID = OpVariable %_ptr_Input_v3uint Input %17 = OpTypeFunction %uint %void = OpTypeVoid %31 = OpTypeFunction %void %int = OpTypeInt 32 1 %int_0 = OpConstant %int 0 %_ptr_Uniform_uint = OpTypePointer Uniform %uint %helper_I = OpFunction %uint None %17 %18 = OpLabel %19 = OpLoad %v3uint %sk_NumWorkgroups %20 = OpCompositeExtract %uint %19 0 %21 = OpLoad %v3uint %sk_WorkgroupID %22 = OpCompositeExtract %uint %21 0 %23 = OpIAdd %uint %20 %22 %24 = OpLoad %v3uint %sk_LocalInvocationID %25 = OpCompositeExtract %uint %24 0 %26 = OpIAdd %uint %23 %25 %27 = OpLoad %v3uint %sk_GlobalInvocationID %28 = OpCompositeExtract %uint %27 0 %29 = OpIAdd %uint %26 %28 OpReturnValue %29 OpFunctionEnd %main = OpFunction %void None %31 %32 = OpLabel %33 = OpFunctionCall %uint %helper_I %36 = OpLoad %uint %sk_LocalInvocationIndex %37 = OpAccessChain %_ptr_Uniform_uint %4 %int_0 %36 OpStore %37 %33 OpReturn OpFunctionEnd