xref: /aosp_15_r20/external/skia/tests/sksl/blend/BlendSoftLight.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0)
2*c8dee2aaSAndroid Build Coastguard Worker{
3*c8dee2aaSAndroid Build Coastguard Worker    float4 _15_src : packoffset(c0);
4*c8dee2aaSAndroid Build Coastguard Worker    float4 _15_dst : packoffset(c1);
5*c8dee2aaSAndroid Build Coastguard Worker};
6*c8dee2aaSAndroid Build Coastguard Worker
7*c8dee2aaSAndroid Build Coastguard Worker
8*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor;
9*c8dee2aaSAndroid Build Coastguard Worker
10*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output
11*c8dee2aaSAndroid Build Coastguard Worker{
12*c8dee2aaSAndroid Build Coastguard Worker    float4 sk_FragColor : SV_Target0;
13*c8dee2aaSAndroid Build Coastguard Worker};
14*c8dee2aaSAndroid Build Coastguard Worker
15*c8dee2aaSAndroid Build Coastguard Workerstatic float _kGuardedDivideEpsilon = 0.0f;
16*c8dee2aaSAndroid Build Coastguard Worker
17*c8dee2aaSAndroid Build Coastguard Workerfloat soft_light_component_Qhh2h2(float2 _21, float2 _22)
18*c8dee2aaSAndroid Build Coastguard Worker{
19*c8dee2aaSAndroid Build Coastguard Worker    if ((2.0f * _21.x) <= _21.y)
20*c8dee2aaSAndroid Build Coastguard Worker    {
21*c8dee2aaSAndroid Build Coastguard Worker        return ((((_22.x * _22.x) * (_21.y - (2.0f * _21.x))) / (_22.y + _kGuardedDivideEpsilon)) + ((1.0f - _22.y) * _21.x)) + (_22.x * (((-_21.y) + (2.0f * _21.x)) + 1.0f));
22*c8dee2aaSAndroid Build Coastguard Worker    }
23*c8dee2aaSAndroid Build Coastguard Worker    else
24*c8dee2aaSAndroid Build Coastguard Worker    {
25*c8dee2aaSAndroid Build Coastguard Worker        if ((4.0f * _22.x) <= _22.y)
26*c8dee2aaSAndroid Build Coastguard Worker        {
27*c8dee2aaSAndroid Build Coastguard Worker            float _87 = _22.x * _22.x;
28*c8dee2aaSAndroid Build Coastguard Worker            float DSqd = _87;
29*c8dee2aaSAndroid Build Coastguard Worker            float _91 = _87 * _22.x;
30*c8dee2aaSAndroid Build Coastguard Worker            float DCub = _91;
31*c8dee2aaSAndroid Build Coastguard Worker            float _97 = _22.y * _22.y;
32*c8dee2aaSAndroid Build Coastguard Worker            float DaSqd = _97;
33*c8dee2aaSAndroid Build Coastguard Worker            float _101 = _97 * _22.y;
34*c8dee2aaSAndroid Build Coastguard Worker            float DaCub = _101;
35*c8dee2aaSAndroid Build Coastguard Worker            return ((((_97 * (_21.x - (_22.x * (((3.0f * _21.y) - (6.0f * _21.x)) - 1.0f)))) + (((12.0f * _22.y) * _87) * (_21.y - (2.0f * _21.x)))) - ((16.0f * _91) * (_21.y - (2.0f * _21.x)))) - (_101 * _21.x)) / (_97 + _kGuardedDivideEpsilon);
36*c8dee2aaSAndroid Build Coastguard Worker        }
37*c8dee2aaSAndroid Build Coastguard Worker        else
38*c8dee2aaSAndroid Build Coastguard Worker        {
39*c8dee2aaSAndroid Build Coastguard Worker            return (((_22.x * ((_21.y - (2.0f * _21.x)) + 1.0f)) + _21.x) - (sqrt(_22.y * _22.x) * (_21.y - (2.0f * _21.x)))) - (_22.y * _21.x);
40*c8dee2aaSAndroid Build Coastguard Worker        }
41*c8dee2aaSAndroid Build Coastguard Worker    }
42*c8dee2aaSAndroid Build Coastguard Worker}
43*c8dee2aaSAndroid Build Coastguard Worker
44*c8dee2aaSAndroid Build Coastguard Workervoid frag_main()
45*c8dee2aaSAndroid Build Coastguard Worker{
46*c8dee2aaSAndroid Build Coastguard Worker    _kGuardedDivideEpsilon = false ? 9.9999999392252902907785028219223e-09f : 0.0f;
47*c8dee2aaSAndroid Build Coastguard Worker    float4 _192 = 0.0f.xxxx;
48*c8dee2aaSAndroid Build Coastguard Worker    if (_15_dst.w == 0.0f)
49*c8dee2aaSAndroid Build Coastguard Worker    {
50*c8dee2aaSAndroid Build Coastguard Worker        _192 = _15_src;
51*c8dee2aaSAndroid Build Coastguard Worker    }
52*c8dee2aaSAndroid Build Coastguard Worker    else
53*c8dee2aaSAndroid Build Coastguard Worker    {
54*c8dee2aaSAndroid Build Coastguard Worker        float2 _203 = _15_src.xw;
55*c8dee2aaSAndroid Build Coastguard Worker        float2 _207 = _15_dst.xw;
56*c8dee2aaSAndroid Build Coastguard Worker        float2 _212 = _15_src.yw;
57*c8dee2aaSAndroid Build Coastguard Worker        float2 _216 = _15_dst.yw;
58*c8dee2aaSAndroid Build Coastguard Worker        float2 _221 = _15_src.zw;
59*c8dee2aaSAndroid Build Coastguard Worker        float2 _225 = _15_dst.zw;
60*c8dee2aaSAndroid Build Coastguard Worker        _192 = float4(soft_light_component_Qhh2h2(_203, _207), soft_light_component_Qhh2h2(_212, _216), soft_light_component_Qhh2h2(_221, _225), _15_src.w + ((1.0f - _15_src.w) * _15_dst.w));
61*c8dee2aaSAndroid Build Coastguard Worker    }
62*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = _192;
63*c8dee2aaSAndroid Build Coastguard Worker}
64*c8dee2aaSAndroid Build Coastguard Worker
65*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main()
66*c8dee2aaSAndroid Build Coastguard Worker{
67*c8dee2aaSAndroid Build Coastguard Worker    frag_main();
68*c8dee2aaSAndroid Build Coastguard Worker    SPIRV_Cross_Output stage_output;
69*c8dee2aaSAndroid Build Coastguard Worker    stage_output.sk_FragColor = sk_FragColor;
70*c8dee2aaSAndroid Build Coastguard Worker    return stage_output;
71*c8dee2aaSAndroid Build Coastguard Worker}
72