xref: /aosp_15_r20/external/skia/tests/sksl/shared/Control.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0)
2*c8dee2aaSAndroid Build Coastguard Worker{
3*c8dee2aaSAndroid Build Coastguard Worker    float _7_unknownInput : packoffset(c0);
4*c8dee2aaSAndroid Build Coastguard Worker};
5*c8dee2aaSAndroid Build Coastguard Worker
6*c8dee2aaSAndroid Build Coastguard Worker
7*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor;
8*c8dee2aaSAndroid Build Coastguard Worker
9*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output
10*c8dee2aaSAndroid Build Coastguard Worker{
11*c8dee2aaSAndroid Build Coastguard Worker    float4 sk_FragColor : SV_Target0;
12*c8dee2aaSAndroid Build Coastguard Worker};
13*c8dee2aaSAndroid Build Coastguard Worker
14*c8dee2aaSAndroid Build Coastguard Workervoid frag_main()
15*c8dee2aaSAndroid Build Coastguard Worker{
16*c8dee2aaSAndroid Build Coastguard Worker    if (_7_unknownInput > 5.0f)
17*c8dee2aaSAndroid Build Coastguard Worker    {
18*c8dee2aaSAndroid Build Coastguard Worker        sk_FragColor = 0.75f.xxxx;
19*c8dee2aaSAndroid Build Coastguard Worker    }
20*c8dee2aaSAndroid Build Coastguard Worker    else
21*c8dee2aaSAndroid Build Coastguard Worker    {
22*c8dee2aaSAndroid Build Coastguard Worker        discard;
23*c8dee2aaSAndroid Build Coastguard Worker    }
24*c8dee2aaSAndroid Build Coastguard Worker    int i = 0;
25*c8dee2aaSAndroid Build Coastguard Worker    while (i < 10)
26*c8dee2aaSAndroid Build Coastguard Worker    {
27*c8dee2aaSAndroid Build Coastguard Worker        sk_FragColor *= 0.5f;
28*c8dee2aaSAndroid Build Coastguard Worker        i++;
29*c8dee2aaSAndroid Build Coastguard Worker    }
30*c8dee2aaSAndroid Build Coastguard Worker    do
31*c8dee2aaSAndroid Build Coastguard Worker    {
32*c8dee2aaSAndroid Build Coastguard Worker        sk_FragColor += 0.25f.xxxx;
33*c8dee2aaSAndroid Build Coastguard Worker    } while (sk_FragColor.x < 0.75f);
34*c8dee2aaSAndroid Build Coastguard Worker    for (int i_1 = 0; i_1 < 10; i_1++)
35*c8dee2aaSAndroid Build Coastguard Worker    {
36*c8dee2aaSAndroid Build Coastguard Worker        if ((i_1 % 2) == 1)
37*c8dee2aaSAndroid Build Coastguard Worker        {
38*c8dee2aaSAndroid Build Coastguard Worker            break;
39*c8dee2aaSAndroid Build Coastguard Worker        }
40*c8dee2aaSAndroid Build Coastguard Worker        else
41*c8dee2aaSAndroid Build Coastguard Worker        {
42*c8dee2aaSAndroid Build Coastguard Worker            if (i_1 > 100)
43*c8dee2aaSAndroid Build Coastguard Worker            {
44*c8dee2aaSAndroid Build Coastguard Worker                return;
45*c8dee2aaSAndroid Build Coastguard Worker            }
46*c8dee2aaSAndroid Build Coastguard Worker            else
47*c8dee2aaSAndroid Build Coastguard Worker            {
48*c8dee2aaSAndroid Build Coastguard Worker                continue;
49*c8dee2aaSAndroid Build Coastguard Worker            }
50*c8dee2aaSAndroid Build Coastguard Worker        }
51*c8dee2aaSAndroid Build Coastguard Worker    }
52*c8dee2aaSAndroid Build Coastguard Worker}
53*c8dee2aaSAndroid Build Coastguard Worker
54*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main()
55*c8dee2aaSAndroid Build Coastguard Worker{
56*c8dee2aaSAndroid Build Coastguard Worker    frag_main();
57*c8dee2aaSAndroid Build Coastguard Worker    SPIRV_Cross_Output stage_output;
58*c8dee2aaSAndroid Build Coastguard Worker    stage_output.sk_FragColor = sk_FragColor;
59*c8dee2aaSAndroid Build Coastguard Worker    return stage_output;
60*c8dee2aaSAndroid Build Coastguard Worker}
61