xref: /aosp_15_r20/external/skia/tests/sksl/shared/ForLoopControlFlow.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0)
2*c8dee2aaSAndroid Build Coastguard Worker{
3*c8dee2aaSAndroid Build Coastguard Worker    float4 _7_colorWhite : 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 Workerfloat4 main(float2 _21)
15*c8dee2aaSAndroid Build Coastguard Worker{
16*c8dee2aaSAndroid Build Coastguard Worker    float4 x = _7_colorWhite;
17*c8dee2aaSAndroid Build Coastguard Worker    for (float r = -5.0f; r < 5.0f; r += 1.0f)
18*c8dee2aaSAndroid Build Coastguard Worker    {
19*c8dee2aaSAndroid Build Coastguard Worker        x.x = clamp(r, 0.0f, 1.0f);
20*c8dee2aaSAndroid Build Coastguard Worker        if (x.x == 0.0f)
21*c8dee2aaSAndroid Build Coastguard Worker        {
22*c8dee2aaSAndroid Build Coastguard Worker            break;
23*c8dee2aaSAndroid Build Coastguard Worker        }
24*c8dee2aaSAndroid Build Coastguard Worker    }
25*c8dee2aaSAndroid Build Coastguard Worker    for (float b = 5.0f; b >= 0.0f; b -= 1.0f)
26*c8dee2aaSAndroid Build Coastguard Worker    {
27*c8dee2aaSAndroid Build Coastguard Worker        x.z = b;
28*c8dee2aaSAndroid Build Coastguard Worker        if (x.w == 1.0f)
29*c8dee2aaSAndroid Build Coastguard Worker        {
30*c8dee2aaSAndroid Build Coastguard Worker            continue;
31*c8dee2aaSAndroid Build Coastguard Worker        }
32*c8dee2aaSAndroid Build Coastguard Worker        x.y = 0.0f;
33*c8dee2aaSAndroid Build Coastguard Worker    }
34*c8dee2aaSAndroid Build Coastguard Worker    return x;
35*c8dee2aaSAndroid Build Coastguard Worker}
36*c8dee2aaSAndroid Build Coastguard Worker
37*c8dee2aaSAndroid Build Coastguard Workervoid frag_main()
38*c8dee2aaSAndroid Build Coastguard Worker{
39*c8dee2aaSAndroid Build Coastguard Worker    float2 _17 = 0.0f.xx;
40*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = main(_17);
41*c8dee2aaSAndroid Build Coastguard Worker}
42*c8dee2aaSAndroid Build Coastguard Worker
43*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main()
44*c8dee2aaSAndroid Build Coastguard Worker{
45*c8dee2aaSAndroid Build Coastguard Worker    frag_main();
46*c8dee2aaSAndroid Build Coastguard Worker    SPIRV_Cross_Output stage_output;
47*c8dee2aaSAndroid Build Coastguard Worker    stage_output.sk_FragColor = sk_FragColor;
48*c8dee2aaSAndroid Build Coastguard Worker    return stage_output;
49*c8dee2aaSAndroid Build Coastguard Worker}
50