xref: /aosp_15_r20/external/skia/tests/sksl/shared/UniformBuffers.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %sk_FragColor
5               OpExecutionMode %main OriginUpperLeft
6               OpName %testBlock "testBlock"
7               OpMemberName %testBlock 0 "x"
8               OpMemberName %testBlock 1 "w"
9               OpMemberName %testBlock 2 "y"
10               OpMemberName %testBlock 3 "z"
11               OpName %sk_FragColor "sk_FragColor"
12               OpName %main "main"
13               OpDecorate %_arr_float_int_2 ArrayStride 16
14               OpMemberDecorate %testBlock 0 Offset 0
15               OpMemberDecorate %testBlock 0 RelaxedPrecision
16               OpMemberDecorate %testBlock 1 Offset 4
17               OpMemberDecorate %testBlock 2 Offset 16
18               OpMemberDecorate %testBlock 2 RelaxedPrecision
19               OpMemberDecorate %testBlock 3 Offset 48
20               OpMemberDecorate %testBlock 3 ColMajor
21               OpMemberDecorate %testBlock 3 MatrixStride 16
22               OpMemberDecorate %testBlock 3 RelaxedPrecision
23               OpDecorate %testBlock Block
24               OpDecorate %3 Binding 0
25               OpDecorate %3 DescriptorSet 0
26               OpDecorate %sk_FragColor RelaxedPrecision
27               OpDecorate %sk_FragColor Location 0
28               OpDecorate %sk_FragColor Index 0
29               OpDecorate %21 RelaxedPrecision
30               OpDecorate %23 RelaxedPrecision
31               OpDecorate %26 RelaxedPrecision
32               OpDecorate %28 RelaxedPrecision
33      %float = OpTypeFloat 32
34        %int = OpTypeInt 32 1
35      %int_2 = OpConstant %int 2
36%_arr_float_int_2 = OpTypeArray %float %int_2
37    %v3float = OpTypeVector %float 3
38%mat3v3float = OpTypeMatrix %v3float 3
39  %testBlock = OpTypeStruct %float %int %_arr_float_int_2 %mat3v3float
40%_ptr_Uniform_testBlock = OpTypePointer Uniform %testBlock
41          %3 = OpVariable %_ptr_Uniform_testBlock Uniform
42    %v4float = OpTypeVector %float 4
43%_ptr_Output_v4float = OpTypePointer Output %v4float
44%sk_FragColor = OpVariable %_ptr_Output_v4float Output
45       %void = OpTypeVoid
46         %16 = OpTypeFunction %void
47      %int_0 = OpConstant %int 0
48%_ptr_Uniform_float = OpTypePointer Uniform %float
49      %int_1 = OpConstant %int 1
50    %float_0 = OpConstant %float 0
51       %main = OpFunction %void None %16
52         %17 = OpLabel
53         %19 = OpAccessChain %_ptr_Uniform_float %3 %int_0
54         %21 = OpLoad %float %19
55         %22 = OpAccessChain %_ptr_Uniform_float %3 %int_2 %int_0
56         %23 = OpLoad %float %22
57         %25 = OpAccessChain %_ptr_Uniform_float %3 %int_2 %int_1
58         %26 = OpLoad %float %25
59         %28 = OpCompositeConstruct %v4float %21 %23 %26 %float_0
60               OpStore %sk_FragColor %28
61               OpReturn
62               OpFunctionEnd
63