xref: /aosp_15_r20/external/skia/tests/sksl/compute/ModuleStructInInterfaceBlock.asm.comp (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
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