xref: /aosp_15_r20/external/skia/tests/sksl/shared/SampleMask.asm.frag (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %sk_FragColor %sk_SampleMask %sk_SampleMaskIn
5               OpExecutionMode %main OriginUpperLeft
6               OpName %sk_FragColor "sk_FragColor"
7               OpName %sk_SampleMask "sk_SampleMask"
8               OpName %sk_SampleMaskIn "sk_SampleMaskIn"
9               OpName %samplemaskin_as_color_h4 "samplemaskin_as_color_h4"
10               OpName %clear_samplemask_v "clear_samplemask_v"
11               OpName %reset_samplemask_v "reset_samplemask_v"
12               OpName %main "main"
13               OpDecorate %sk_FragColor RelaxedPrecision
14               OpDecorate %sk_FragColor Location 0
15               OpDecorate %sk_FragColor Index 0
16               OpDecorate %_arr_uint_int_1 ArrayStride 16
17               OpDecorate %sk_SampleMask BuiltIn SampleMask
18               OpDecorate %sk_SampleMaskIn BuiltIn SampleMask
19               OpDecorate %24 RelaxedPrecision
20               OpDecorate %25 RelaxedPrecision
21               OpDecorate %43 RelaxedPrecision
22      %float = OpTypeFloat 32
23    %v4float = OpTypeVector %float 4
24%_ptr_Output_v4float = OpTypePointer Output %v4float
25%sk_FragColor = OpVariable %_ptr_Output_v4float Output
26       %uint = OpTypeInt 32 0
27        %int = OpTypeInt 32 1
28      %int_1 = OpConstant %int 1
29%_arr_uint_int_1 = OpTypeArray %uint %int_1
30%_ptr_Output__arr_uint_int_1 = OpTypePointer Output %_arr_uint_int_1
31%sk_SampleMask = OpVariable %_ptr_Output__arr_uint_int_1 Output
32%_ptr_Input__arr_uint_int_1 = OpTypePointer Input %_arr_uint_int_1
33%sk_SampleMaskIn = OpVariable %_ptr_Input__arr_uint_int_1 Input
34         %18 = OpTypeFunction %v4float
35%_ptr_Input_uint = OpTypePointer Input %uint
36      %int_0 = OpConstant %int 0
37       %void = OpTypeVoid
38         %27 = OpTypeFunction %void
39     %uint_0 = OpConstant %uint 0
40%_ptr_Output_uint = OpTypePointer Output %uint
41%uint_4294967295 = OpConstant %uint 4294967295
42%float_0_00390625 = OpConstant %float 0.00390625
43%samplemaskin_as_color_h4 = OpFunction %v4float None %18
44         %19 = OpLabel
45         %20 = OpAccessChain %_ptr_Input_uint %sk_SampleMaskIn %int_0
46         %23 = OpLoad %uint %20
47         %24 = OpConvertUToF %float %23
48         %25 = OpCompositeConstruct %v4float %24 %24 %24 %24
49               OpReturnValue %25
50               OpFunctionEnd
51%clear_samplemask_v = OpFunction %void None %27
52         %28 = OpLabel
53         %30 = OpAccessChain %_ptr_Output_uint %sk_SampleMask %int_0
54               OpStore %30 %uint_0
55               OpReturn
56               OpFunctionEnd
57%reset_samplemask_v = OpFunction %void None %27
58         %32 = OpLabel
59         %33 = OpAccessChain %_ptr_Input_uint %sk_SampleMaskIn %int_0
60         %34 = OpLoad %uint %33
61         %35 = OpAccessChain %_ptr_Output_uint %sk_SampleMask %int_0
62               OpStore %35 %34
63               OpReturn
64               OpFunctionEnd
65       %main = OpFunction %void None %27
66         %36 = OpLabel
67         %37 = OpFunctionCall %void %clear_samplemask_v
68         %38 = OpFunctionCall %void %reset_samplemask_v
69         %40 = OpAccessChain %_ptr_Output_uint %sk_SampleMask %int_0
70               OpStore %40 %uint_4294967295
71         %41 = OpFunctionCall %v4float %samplemaskin_as_color_h4
72         %43 = OpVectorTimesScalar %v4float %41 %float_0_00390625
73               OpStore %sk_FragColor %43
74               OpReturn
75               OpFunctionEnd
76