1cb93a386Sopenharmony_ci#include <metal_stdlib>
2cb93a386Sopenharmony_ci#include <simd/simd.h>
3cb93a386Sopenharmony_ciusing namespace metal;
4cb93a386Sopenharmony_cistruct Inputs {
5cb93a386Sopenharmony_ci    float2 vLocalCoord_Stage0  [[user(locn0)]];
6cb93a386Sopenharmony_ci};
7cb93a386Sopenharmony_cistruct Outputs {
8cb93a386Sopenharmony_ci    half4 sk_FragColor [[color(0)]];
9cb93a386Sopenharmony_ci};
10cb93a386Sopenharmony_cistruct uniformBuffer {
11cb93a386Sopenharmony_ci    float4 sk_RTAdjust;
12cb93a386Sopenharmony_ci    half2 uIncrement_Stage1_c0;
13cb93a386Sopenharmony_ci    char pad0[12];
14cb93a386Sopenharmony_ci    array<half4, 7> uKernel_Stage1_c0;
15cb93a386Sopenharmony_ci    char pad1[56];
16cb93a386Sopenharmony_ci    float3x3 umatrix_Stage1_c0_c0;
17cb93a386Sopenharmony_ci    half4 uborder_Stage1_c0_c0_c0;
18cb93a386Sopenharmony_ci    char pad2[8];
19cb93a386Sopenharmony_ci    float4 usubset_Stage1_c0_c0_c0;
20cb93a386Sopenharmony_ci    float4 unorm_Stage1_c0_c0_c0;
21cb93a386Sopenharmony_ci};
22cb93a386Sopenharmony_cistruct Globals {
23cb93a386Sopenharmony_ci    constant uniformBuffer* _anonInterface0;
24cb93a386Sopenharmony_ci    texture2d<half> uTextureSampler_0_Stage1;
25cb93a386Sopenharmony_ci    sampler uTextureSampler_0_Stage1Smplr;
26cb93a386Sopenharmony_ci};
27cb93a386Sopenharmony_cihalf4 MatrixEffect_Stage1_c0_c0_h4h4f2(thread Globals& _globals, half4 _input, float2 _coords) {
28cb93a386Sopenharmony_ci    float2 _1_inCoord = (_globals._anonInterface0->umatrix_Stage1_c0_c0 * float3(_coords, 1.0)).xy;
29cb93a386Sopenharmony_ci    _1_inCoord *= _globals._anonInterface0->unorm_Stage1_c0_c0_c0.xy;
30cb93a386Sopenharmony_ci    float2 _2_subsetCoord;
31cb93a386Sopenharmony_ci    _2_subsetCoord.x = _1_inCoord.x;
32cb93a386Sopenharmony_ci    _2_subsetCoord.y = _1_inCoord.y;
33cb93a386Sopenharmony_ci    float2 _3_clampedCoord;
34cb93a386Sopenharmony_ci    _3_clampedCoord = _2_subsetCoord;
35cb93a386Sopenharmony_ci    half4 _4_textureColor = _globals.uTextureSampler_0_Stage1.sample(_globals.uTextureSampler_0_Stage1Smplr, _3_clampedCoord * _globals._anonInterface0->unorm_Stage1_c0_c0_c0.zw);
36cb93a386Sopenharmony_ci    float _5_snappedX = floor(_1_inCoord.x + 0.0010000000474974513) + 0.5;
37cb93a386Sopenharmony_ci    if (_5_snappedX < _globals._anonInterface0->usubset_Stage1_c0_c0_c0.x || _5_snappedX > _globals._anonInterface0->usubset_Stage1_c0_c0_c0.z) {
38cb93a386Sopenharmony_ci        _4_textureColor = _globals._anonInterface0->uborder_Stage1_c0_c0_c0;
39cb93a386Sopenharmony_ci    }
40cb93a386Sopenharmony_ci    return _4_textureColor;
41cb93a386Sopenharmony_ci}
42cb93a386Sopenharmony_cifragment Outputs fragmentMain(Inputs _in [[stage_in]], texture2d<half> uTextureSampler_0_Stage1[[texture(0)]], sampler uTextureSampler_0_Stage1Smplr[[sampler(0)]], constant uniformBuffer& _anonInterface0 [[buffer(0)]], bool _frontFacing [[front_facing]], float4 _fragCoord [[position]]) {
43cb93a386Sopenharmony_ci    Globals _globals{&_anonInterface0, uTextureSampler_0_Stage1, uTextureSampler_0_Stage1Smplr};
44cb93a386Sopenharmony_ci    (void)_globals;
45cb93a386Sopenharmony_ci    Outputs _out;
46cb93a386Sopenharmony_ci    (void)_out;
47cb93a386Sopenharmony_ci    half4 outputColor_Stage0;
48cb93a386Sopenharmony_ci    half4 outputCoverage_Stage0;
49cb93a386Sopenharmony_ci    {
50cb93a386Sopenharmony_ci        outputColor_Stage0 = half4(1.0h);
51cb93a386Sopenharmony_ci        outputCoverage_Stage0 = half4(1.0h);
52cb93a386Sopenharmony_ci    }
53cb93a386Sopenharmony_ci    half4 output_Stage1;
54cb93a386Sopenharmony_ci    half4 _6_output;
55cb93a386Sopenharmony_ci    _6_output = half4(0.0h, 0.0h, 0.0h, 0.0h);
56cb93a386Sopenharmony_ci    float2 _7_coord = _in.vLocalCoord_Stage0 - float2(12.0h * _globals._anonInterface0->uIncrement_Stage1_c0);
57cb93a386Sopenharmony_ci    float2 _8_coordSampled = float2(0.0, 0.0);
58cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
59cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].x;
60cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
61cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
62cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].y;
63cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
64cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
65cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].z;
66cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
67cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
68cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[0].w;
69cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
70cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
71cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].x;
72cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
73cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
74cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].y;
75cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
76cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
77cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].z;
78cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
79cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
80cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[1].w;
81cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
82cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
83cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].x;
84cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
85cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
86cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].y;
87cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
88cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
89cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].z;
90cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
91cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
92cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[2].w;
93cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
94cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
95cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].x;
96cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
97cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
98cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].y;
99cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
100cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
101cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].z;
102cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
103cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
104cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[3].w;
105cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
106cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
107cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].x;
108cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
109cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
110cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].y;
111cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
112cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
113cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].z;
114cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
115cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
116cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[4].w;
117cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
118cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
119cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].x;
120cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
121cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
122cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].y;
123cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
124cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
125cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].z;
126cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
127cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
128cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[5].w;
129cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
130cb93a386Sopenharmony_ci    _8_coordSampled = _7_coord;
131cb93a386Sopenharmony_ci    _6_output += MatrixEffect_Stage1_c0_c0_h4h4f2(_globals, outputColor_Stage0, _8_coordSampled) * _globals._anonInterface0->uKernel_Stage1_c0[6].x;
132cb93a386Sopenharmony_ci    _7_coord += float2(_globals._anonInterface0->uIncrement_Stage1_c0);
133cb93a386Sopenharmony_ci    _6_output *= outputColor_Stage0;
134cb93a386Sopenharmony_ci    output_Stage1 = _6_output;
135cb93a386Sopenharmony_ci    {
136cb93a386Sopenharmony_ci        _out.sk_FragColor = output_Stage1 * outputCoverage_Stage0;
137cb93a386Sopenharmony_ci    }
138cb93a386Sopenharmony_ci    return _out;
139cb93a386Sopenharmony_ci}
140