1 OpCapability Shader 2 %1 = OpExtInstImport "GLSL.std.450" 3 OpMemoryModel Logical GLSL450 4 OpEntryPoint GLCompute %main "main" 5 OpExecutionMode %main LocalSize 16 16 1 6 OpName %IndirectDispatchArgs "IndirectDispatchArgs" 7 OpMemberName %IndirectDispatchArgs 0 "x" 8 OpMemberName %IndirectDispatchArgs 1 "y" 9 OpMemberName %IndirectDispatchArgs 2 "z" 10 OpName %InputBuffer "InputBuffer" 11 OpMemberName %InputBuffer 0 "args" 12 OpName %outX "outX" 13 OpName %outY "outY" 14 OpName %outZ "outZ" 15 OpName %main "main" 16 OpMemberDecorate %IndirectDispatchArgs 0 Offset 0 17 OpMemberDecorate %IndirectDispatchArgs 1 Offset 4 18 OpMemberDecorate %IndirectDispatchArgs 2 Offset 8 19 OpMemberDecorate %InputBuffer 0 Offset 0 20 OpMemberDecorate %InputBuffer 0 RelaxedPrecision 21 OpDecorate %InputBuffer BufferBlock 22 OpDecorate %3 Binding 0 23 OpDecorate %3 DescriptorSet 0 24 %int = OpTypeInt 32 1 25%IndirectDispatchArgs = OpTypeStruct %int %int %int 26%InputBuffer = OpTypeStruct %IndirectDispatchArgs 27%_ptr_Uniform_InputBuffer = OpTypePointer Uniform %InputBuffer 28 %3 = OpVariable %_ptr_Uniform_InputBuffer Uniform 29%_ptr_Workgroup_int = OpTypePointer Workgroup %int 30 %outX = OpVariable %_ptr_Workgroup_int Workgroup 31 %outY = OpVariable %_ptr_Workgroup_int Workgroup 32 %outZ = OpVariable %_ptr_Workgroup_int Workgroup 33 %void = OpTypeVoid 34 %13 = OpTypeFunction %void 35 %int_0 = OpConstant %int 0 36%_ptr_Uniform_int = OpTypePointer Uniform %int 37 %int_1 = OpConstant %int 1 38 %int_2 = OpConstant %int 2 39 %main = OpFunction %void None %13 40 %14 = OpLabel 41 %16 = OpAccessChain %_ptr_Uniform_int %3 %int_0 %int_0 42 %18 = OpLoad %int %16 43 OpStore %outX %18 44 %20 = OpAccessChain %_ptr_Uniform_int %3 %int_0 %int_1 45 %21 = OpLoad %int %20 46 OpStore %outY %21 47 %23 = OpAccessChain %_ptr_Uniform_int %3 %int_0 %int_2 48 %24 = OpLoad %int %23 49 OpStore %outZ %24 50 OpReturn 51 OpFunctionEnd 52