xref: /aosp_15_r20/external/skia/tests/sksl/shared/SwizzleAsLValueES3.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0)
2*c8dee2aaSAndroid Build Coastguard Worker{
3*c8dee2aaSAndroid Build Coastguard Worker    float4 _12_colorGreen : packoffset(c0);
4*c8dee2aaSAndroid Build Coastguard Worker    float4 _12_colorRed : 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 int gAccessCount = 0;
16*c8dee2aaSAndroid Build Coastguard Worker
17*c8dee2aaSAndroid Build Coastguard Workerint Z_i()
18*c8dee2aaSAndroid Build Coastguard Worker{
19*c8dee2aaSAndroid Build Coastguard Worker    gAccessCount++;
20*c8dee2aaSAndroid Build Coastguard Worker    return 0;
21*c8dee2aaSAndroid Build Coastguard Worker}
22*c8dee2aaSAndroid Build Coastguard Worker
23*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _31)
24*c8dee2aaSAndroid Build Coastguard Worker{
25*c8dee2aaSAndroid Build Coastguard Worker    gAccessCount = 0;
26*c8dee2aaSAndroid Build Coastguard Worker    int _41 = Z_i();
27*c8dee2aaSAndroid Build Coastguard Worker    float4 array[1] = { 0.0f.xxxx };
28*c8dee2aaSAndroid Build Coastguard Worker    array[_41] = _12_colorGreen * 0.5f;
29*c8dee2aaSAndroid Build Coastguard Worker    int _45 = Z_i();
30*c8dee2aaSAndroid Build Coastguard Worker    array[_45].w = 2.0f;
31*c8dee2aaSAndroid Build Coastguard Worker    int _50 = Z_i();
32*c8dee2aaSAndroid Build Coastguard Worker    array[_50].y *= 4.0f;
33*c8dee2aaSAndroid Build Coastguard Worker    int _56 = Z_i();
34*c8dee2aaSAndroid Build Coastguard Worker    float3 _66 = mul(float3x3(float3(0.5f, 0.0f, 0.0f), float3(0.0f, 0.5f, 0.0f), float3(0.0f, 0.0f, 0.5f)), array[_56].yzw);
35*c8dee2aaSAndroid Build Coastguard Worker    array[_56] = float4(array[_56].x, _66.x, _66.y, _66.z);
36*c8dee2aaSAndroid Build Coastguard Worker    int _69 = Z_i();
37*c8dee2aaSAndroid Build Coastguard Worker    float4 _76 = array[_69].zywx + float4(0.25f, 0.0f, 0.0f, 0.75f);
38*c8dee2aaSAndroid Build Coastguard Worker    array[_69] = float4(_76.w, _76.y, _76.x, _76.z);
39*c8dee2aaSAndroid Build Coastguard Worker    int _79 = Z_i();
40*c8dee2aaSAndroid Build Coastguard Worker    int _83 = Z_i();
41*c8dee2aaSAndroid Build Coastguard Worker    float _90 = 0.0f;
42*c8dee2aaSAndroid Build Coastguard Worker    if (array[_83].w <= 1.0f)
43*c8dee2aaSAndroid Build Coastguard Worker    {
44*c8dee2aaSAndroid Build Coastguard Worker        int _94 = Z_i();
45*c8dee2aaSAndroid Build Coastguard Worker        _90 = array[_94].z;
46*c8dee2aaSAndroid Build Coastguard Worker    }
47*c8dee2aaSAndroid Build Coastguard Worker    else
48*c8dee2aaSAndroid Build Coastguard Worker    {
49*c8dee2aaSAndroid Build Coastguard Worker        int _98 = Z_i();
50*c8dee2aaSAndroid Build Coastguard Worker        _90 = float(_98);
51*c8dee2aaSAndroid Build Coastguard Worker    }
52*c8dee2aaSAndroid Build Coastguard Worker    array[_79].x += _90;
53*c8dee2aaSAndroid Build Coastguard Worker    bool _114 = false;
54*c8dee2aaSAndroid Build Coastguard Worker    if (gAccessCount == 8)
55*c8dee2aaSAndroid Build Coastguard Worker    {
56*c8dee2aaSAndroid Build Coastguard Worker        _114 = all(bool4(array[0].x == float4(1.0f, 1.0f, 0.25f, 1.0f).x, array[0].y == float4(1.0f, 1.0f, 0.25f, 1.0f).y, array[0].z == float4(1.0f, 1.0f, 0.25f, 1.0f).z, array[0].w == float4(1.0f, 1.0f, 0.25f, 1.0f).w));
57*c8dee2aaSAndroid Build Coastguard Worker    }
58*c8dee2aaSAndroid Build Coastguard Worker    else
59*c8dee2aaSAndroid Build Coastguard Worker    {
60*c8dee2aaSAndroid Build Coastguard Worker        _114 = false;
61*c8dee2aaSAndroid Build Coastguard Worker    }
62*c8dee2aaSAndroid Build Coastguard Worker    float4 _115 = 0.0f.xxxx;
63*c8dee2aaSAndroid Build Coastguard Worker    if (_114)
64*c8dee2aaSAndroid Build Coastguard Worker    {
65*c8dee2aaSAndroid Build Coastguard Worker        _115 = _12_colorGreen;
66*c8dee2aaSAndroid Build Coastguard Worker    }
67*c8dee2aaSAndroid Build Coastguard Worker    else
68*c8dee2aaSAndroid Build Coastguard Worker    {
69*c8dee2aaSAndroid Build Coastguard Worker        _115 = _12_colorRed;
70*c8dee2aaSAndroid Build Coastguard Worker    }
71*c8dee2aaSAndroid Build Coastguard Worker    return _115;
72*c8dee2aaSAndroid Build Coastguard Worker}
73*c8dee2aaSAndroid Build Coastguard Worker
74*c8dee2aaSAndroid Build Coastguard Workervoid frag_main()
75*c8dee2aaSAndroid Build Coastguard Worker{
76*c8dee2aaSAndroid Build Coastguard Worker    float2 _22 = 0.0f.xx;
77*c8dee2aaSAndroid Build Coastguard Worker    float4 _24 = main(_22);
78*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = _24;
79*c8dee2aaSAndroid Build Coastguard Worker}
80*c8dee2aaSAndroid Build Coastguard Worker
81*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main()
82*c8dee2aaSAndroid Build Coastguard Worker{
83*c8dee2aaSAndroid Build Coastguard Worker    frag_main();
84*c8dee2aaSAndroid Build Coastguard Worker    SPIRV_Cross_Output stage_output;
85*c8dee2aaSAndroid Build Coastguard Worker    stage_output.sk_FragColor = sk_FragColor;
86*c8dee2aaSAndroid Build Coastguard Worker    return stage_output;
87*c8dee2aaSAndroid Build Coastguard Worker}
88