xref: /aosp_15_r20/external/skia/tests/sksl/intrinsics/DFdy.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0)
2*c8dee2aaSAndroid Build Coastguard Worker{
3*c8dee2aaSAndroid Build Coastguard Worker    float4 _8_testInputs : packoffset(c0);
4*c8dee2aaSAndroid Build Coastguard Worker    float4 _8_colorGreen : packoffset(c1);
5*c8dee2aaSAndroid Build Coastguard Worker    float4 _8_colorRed : packoffset(c2);
6*c8dee2aaSAndroid Build Coastguard Worker    float2 _8_u_skRTFlip : packoffset(c1024);
7*c8dee2aaSAndroid Build Coastguard Worker};
8*c8dee2aaSAndroid Build Coastguard Worker
9*c8dee2aaSAndroid Build Coastguard Worker
10*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor;
11*c8dee2aaSAndroid Build Coastguard Worker
12*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output
13*c8dee2aaSAndroid Build Coastguard Worker{
14*c8dee2aaSAndroid Build Coastguard Worker    float4 sk_FragColor : SV_Target0;
15*c8dee2aaSAndroid Build Coastguard Worker};
16*c8dee2aaSAndroid Build Coastguard Worker
17*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _22)
18*c8dee2aaSAndroid Build Coastguard Worker{
19*c8dee2aaSAndroid Build Coastguard Worker    float4 expected = 0.0f.xxxx;
20*c8dee2aaSAndroid Build Coastguard Worker    bool _57 = false;
21*c8dee2aaSAndroid Build Coastguard Worker    if ((ddy(_8_testInputs.x) * _8_u_skRTFlip.y) == 0.0f)
22*c8dee2aaSAndroid Build Coastguard Worker    {
23*c8dee2aaSAndroid Build Coastguard Worker        float2 _52 = ddy(_8_testInputs.xy) * _8_u_skRTFlip.yy;
24*c8dee2aaSAndroid Build Coastguard Worker        _57 = all(bool2(_52.x == 0.0f.xxxx.xy.x, _52.y == 0.0f.xxxx.xy.y));
25*c8dee2aaSAndroid Build Coastguard Worker    }
26*c8dee2aaSAndroid Build Coastguard Worker    else
27*c8dee2aaSAndroid Build Coastguard Worker    {
28*c8dee2aaSAndroid Build Coastguard Worker        _57 = false;
29*c8dee2aaSAndroid Build Coastguard Worker    }
30*c8dee2aaSAndroid Build Coastguard Worker    bool _73 = false;
31*c8dee2aaSAndroid Build Coastguard Worker    if (_57)
32*c8dee2aaSAndroid Build Coastguard Worker    {
33*c8dee2aaSAndroid Build Coastguard Worker        float3 _68 = ddy(_8_testInputs.xyz) * _8_u_skRTFlip.yyy;
34*c8dee2aaSAndroid Build Coastguard Worker        _73 = all(bool3(_68.x == 0.0f.xxxx.xyz.x, _68.y == 0.0f.xxxx.xyz.y, _68.z == 0.0f.xxxx.xyz.z));
35*c8dee2aaSAndroid Build Coastguard Worker    }
36*c8dee2aaSAndroid Build Coastguard Worker    else
37*c8dee2aaSAndroid Build Coastguard Worker    {
38*c8dee2aaSAndroid Build Coastguard Worker        _73 = false;
39*c8dee2aaSAndroid Build Coastguard Worker    }
40*c8dee2aaSAndroid Build Coastguard Worker    bool _86 = false;
41*c8dee2aaSAndroid Build Coastguard Worker    if (_73)
42*c8dee2aaSAndroid Build Coastguard Worker    {
43*c8dee2aaSAndroid Build Coastguard Worker        float4 _82 = ddy(_8_testInputs) * _8_u_skRTFlip.yyyy;
44*c8dee2aaSAndroid Build Coastguard Worker        _86 = all(bool4(_82.x == 0.0f.xxxx.x, _82.y == 0.0f.xxxx.y, _82.z == 0.0f.xxxx.z, _82.w == 0.0f.xxxx.w));
45*c8dee2aaSAndroid Build Coastguard Worker    }
46*c8dee2aaSAndroid Build Coastguard Worker    else
47*c8dee2aaSAndroid Build Coastguard Worker    {
48*c8dee2aaSAndroid Build Coastguard Worker        _86 = false;
49*c8dee2aaSAndroid Build Coastguard Worker    }
50*c8dee2aaSAndroid Build Coastguard Worker    bool _99 = false;
51*c8dee2aaSAndroid Build Coastguard Worker    if (_86)
52*c8dee2aaSAndroid Build Coastguard Worker    {
53*c8dee2aaSAndroid Build Coastguard Worker        float2 _89 = sign(ddy(_22.xx) * _8_u_skRTFlip.yy);
54*c8dee2aaSAndroid Build Coastguard Worker        _99 = all(bool2(_89.x == 0.0f.xx.x, _89.y == 0.0f.xx.y));
55*c8dee2aaSAndroid Build Coastguard Worker    }
56*c8dee2aaSAndroid Build Coastguard Worker    else
57*c8dee2aaSAndroid Build Coastguard Worker    {
58*c8dee2aaSAndroid Build Coastguard Worker        _99 = false;
59*c8dee2aaSAndroid Build Coastguard Worker    }
60*c8dee2aaSAndroid Build Coastguard Worker    bool _114 = false;
61*c8dee2aaSAndroid Build Coastguard Worker    if (_99)
62*c8dee2aaSAndroid Build Coastguard Worker    {
63*c8dee2aaSAndroid Build Coastguard Worker        float2 _102 = sign(ddy(_22.yy) * _8_u_skRTFlip.yy);
64*c8dee2aaSAndroid Build Coastguard Worker        _114 = all(bool2(_102.x == 1.0f.xx.x, _102.y == 1.0f.xx.y));
65*c8dee2aaSAndroid Build Coastguard Worker    }
66*c8dee2aaSAndroid Build Coastguard Worker    else
67*c8dee2aaSAndroid Build Coastguard Worker    {
68*c8dee2aaSAndroid Build Coastguard Worker        _114 = false;
69*c8dee2aaSAndroid Build Coastguard Worker    }
70*c8dee2aaSAndroid Build Coastguard Worker    bool _127 = false;
71*c8dee2aaSAndroid Build Coastguard Worker    if (_114)
72*c8dee2aaSAndroid Build Coastguard Worker    {
73*c8dee2aaSAndroid Build Coastguard Worker        float2 _117 = sign(ddy(_22) * _8_u_skRTFlip.yy);
74*c8dee2aaSAndroid Build Coastguard Worker        _127 = all(bool2(_117.x == float2(0.0f, 1.0f).x, _117.y == float2(0.0f, 1.0f).y));
75*c8dee2aaSAndroid Build Coastguard Worker    }
76*c8dee2aaSAndroid Build Coastguard Worker    else
77*c8dee2aaSAndroid Build Coastguard Worker    {
78*c8dee2aaSAndroid Build Coastguard Worker        _127 = false;
79*c8dee2aaSAndroid Build Coastguard Worker    }
80*c8dee2aaSAndroid Build Coastguard Worker    float4 _128 = 0.0f.xxxx;
81*c8dee2aaSAndroid Build Coastguard Worker    if (_127)
82*c8dee2aaSAndroid Build Coastguard Worker    {
83*c8dee2aaSAndroid Build Coastguard Worker        _128 = _8_colorGreen;
84*c8dee2aaSAndroid Build Coastguard Worker    }
85*c8dee2aaSAndroid Build Coastguard Worker    else
86*c8dee2aaSAndroid Build Coastguard Worker    {
87*c8dee2aaSAndroid Build Coastguard Worker        _128 = _8_colorRed;
88*c8dee2aaSAndroid Build Coastguard Worker    }
89*c8dee2aaSAndroid Build Coastguard Worker    return _128;
90*c8dee2aaSAndroid Build Coastguard Worker}
91*c8dee2aaSAndroid Build Coastguard Worker
92*c8dee2aaSAndroid Build Coastguard Workervoid frag_main()
93*c8dee2aaSAndroid Build Coastguard Worker{
94*c8dee2aaSAndroid Build Coastguard Worker    float2 _18 = 0.0f.xx;
95*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = main(_18);
96*c8dee2aaSAndroid Build Coastguard Worker}
97*c8dee2aaSAndroid Build Coastguard Worker
98*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main()
99*c8dee2aaSAndroid Build Coastguard Worker{
100*c8dee2aaSAndroid Build Coastguard Worker    frag_main();
101*c8dee2aaSAndroid Build Coastguard Worker    SPIRV_Cross_Output stage_output;
102*c8dee2aaSAndroid Build Coastguard Worker    stage_output.sk_FragColor = sk_FragColor;
103*c8dee2aaSAndroid Build Coastguard Worker    return stage_output;
104*c8dee2aaSAndroid Build Coastguard Worker}
105