xref: /aosp_15_r20/external/skia/tests/sksl/shared/StructIndexStore.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Workerstruct InnerLUT
2*c8dee2aaSAndroid Build Coastguard Worker{
3*c8dee2aaSAndroid Build Coastguard Worker    float3 values;
4*c8dee2aaSAndroid Build Coastguard Worker};
5*c8dee2aaSAndroid Build Coastguard Worker
6*c8dee2aaSAndroid Build Coastguard Workerstruct OuterLUT
7*c8dee2aaSAndroid Build Coastguard Worker{
8*c8dee2aaSAndroid Build Coastguard Worker    InnerLUT inner[3];
9*c8dee2aaSAndroid Build Coastguard Worker};
10*c8dee2aaSAndroid Build Coastguard Worker
11*c8dee2aaSAndroid Build Coastguard Workerstruct Root
12*c8dee2aaSAndroid Build Coastguard Worker{
13*c8dee2aaSAndroid Build Coastguard Worker    int valueAtRoot;
14*c8dee2aaSAndroid Build Coastguard Worker    OuterLUT outer[3];
15*c8dee2aaSAndroid Build Coastguard Worker};
16*c8dee2aaSAndroid Build Coastguard Worker
17*c8dee2aaSAndroid Build Coastguard Workercbuffer _UniformBuffer : register(b0, space0)
18*c8dee2aaSAndroid Build Coastguard Worker{
19*c8dee2aaSAndroid Build Coastguard Worker    float4 _7_colorGreen : packoffset(c0);
20*c8dee2aaSAndroid Build Coastguard Worker    float4 _7_colorRed : packoffset(c1);
21*c8dee2aaSAndroid Build Coastguard Worker};
22*c8dee2aaSAndroid Build Coastguard Worker
23*c8dee2aaSAndroid Build Coastguard Worker
24*c8dee2aaSAndroid Build Coastguard Workerstatic float4 sk_FragColor;
25*c8dee2aaSAndroid Build Coastguard Worker
26*c8dee2aaSAndroid Build Coastguard Workerstruct SPIRV_Cross_Output
27*c8dee2aaSAndroid Build Coastguard Worker{
28*c8dee2aaSAndroid Build Coastguard Worker    float4 sk_FragColor : SV_Target0;
29*c8dee2aaSAndroid Build Coastguard Worker};
30*c8dee2aaSAndroid Build Coastguard Worker
31*c8dee2aaSAndroid Build Coastguard Workerfloat4 main(float2 _21)
32*c8dee2aaSAndroid Build Coastguard Worker{
33*c8dee2aaSAndroid Build Coastguard Worker    Root data = { 0, { { { { 0.0f.xxx }, { 0.0f.xxx }, { 0.0f.xxx } } }, { { { 0.0f.xxx }, { 0.0f.xxx }, { 0.0f.xxx } } }, { { { 0.0f.xxx }, { 0.0f.xxx }, { 0.0f.xxx } } } } };
34*c8dee2aaSAndroid Build Coastguard Worker    data.valueAtRoot = 1234;
35*c8dee2aaSAndroid Build Coastguard Worker    float3 values = 0.0f.xxx;
36*c8dee2aaSAndroid Build Coastguard Worker    for (int i = 0; i < 3; i++)
37*c8dee2aaSAndroid Build Coastguard Worker    {
38*c8dee2aaSAndroid Build Coastguard Worker        for (int j = 0; j < 3; j++)
39*c8dee2aaSAndroid Build Coastguard Worker        {
40*c8dee2aaSAndroid Build Coastguard Worker            values += float3(1.0f, 10.0f, 100.0f);
41*c8dee2aaSAndroid Build Coastguard Worker            for (int k = 0; k < 3; k++)
42*c8dee2aaSAndroid Build Coastguard Worker            {
43*c8dee2aaSAndroid Build Coastguard Worker                data.outer[i].inner[j].values[k] = values[k];
44*c8dee2aaSAndroid Build Coastguard Worker            }
45*c8dee2aaSAndroid Build Coastguard Worker        }
46*c8dee2aaSAndroid Build Coastguard Worker    }
47*c8dee2aaSAndroid Build Coastguard Worker    bool _99 = false;
48*c8dee2aaSAndroid Build Coastguard Worker    if (data.valueAtRoot == 1234)
49*c8dee2aaSAndroid Build Coastguard Worker    {
50*c8dee2aaSAndroid Build Coastguard Worker        _99 = all(bool3(data.outer[0].inner[0].values.x == float3(1.0f, 10.0f, 100.0f).x, data.outer[0].inner[0].values.y == float3(1.0f, 10.0f, 100.0f).y, data.outer[0].inner[0].values.z == float3(1.0f, 10.0f, 100.0f).z));
51*c8dee2aaSAndroid Build Coastguard Worker    }
52*c8dee2aaSAndroid Build Coastguard Worker    else
53*c8dee2aaSAndroid Build Coastguard Worker    {
54*c8dee2aaSAndroid Build Coastguard Worker        _99 = false;
55*c8dee2aaSAndroid Build Coastguard Worker    }
56*c8dee2aaSAndroid Build Coastguard Worker    bool _110 = false;
57*c8dee2aaSAndroid Build Coastguard Worker    if (_99)
58*c8dee2aaSAndroid Build Coastguard Worker    {
59*c8dee2aaSAndroid Build Coastguard Worker        _110 = all(bool3(data.outer[0].inner[1].values.x == float3(2.0f, 20.0f, 200.0f).x, data.outer[0].inner[1].values.y == float3(2.0f, 20.0f, 200.0f).y, data.outer[0].inner[1].values.z == float3(2.0f, 20.0f, 200.0f).z));
60*c8dee2aaSAndroid Build Coastguard Worker    }
61*c8dee2aaSAndroid Build Coastguard Worker    else
62*c8dee2aaSAndroid Build Coastguard Worker    {
63*c8dee2aaSAndroid Build Coastguard Worker        _110 = false;
64*c8dee2aaSAndroid Build Coastguard Worker    }
65*c8dee2aaSAndroid Build Coastguard Worker    bool _122 = false;
66*c8dee2aaSAndroid Build Coastguard Worker    if (_110)
67*c8dee2aaSAndroid Build Coastguard Worker    {
68*c8dee2aaSAndroid Build Coastguard Worker        _122 = all(bool3(data.outer[0].inner[2].values.x == float3(3.0f, 30.0f, 300.0f).x, data.outer[0].inner[2].values.y == float3(3.0f, 30.0f, 300.0f).y, data.outer[0].inner[2].values.z == float3(3.0f, 30.0f, 300.0f).z));
69*c8dee2aaSAndroid Build Coastguard Worker    }
70*c8dee2aaSAndroid Build Coastguard Worker    else
71*c8dee2aaSAndroid Build Coastguard Worker    {
72*c8dee2aaSAndroid Build Coastguard Worker        _122 = false;
73*c8dee2aaSAndroid Build Coastguard Worker    }
74*c8dee2aaSAndroid Build Coastguard Worker    bool _133 = false;
75*c8dee2aaSAndroid Build Coastguard Worker    if (_122)
76*c8dee2aaSAndroid Build Coastguard Worker    {
77*c8dee2aaSAndroid Build Coastguard Worker        _133 = all(bool3(data.outer[1].inner[0].values.x == float3(4.0f, 40.0f, 400.0f).x, data.outer[1].inner[0].values.y == float3(4.0f, 40.0f, 400.0f).y, data.outer[1].inner[0].values.z == float3(4.0f, 40.0f, 400.0f).z));
78*c8dee2aaSAndroid Build Coastguard Worker    }
79*c8dee2aaSAndroid Build Coastguard Worker    else
80*c8dee2aaSAndroid Build Coastguard Worker    {
81*c8dee2aaSAndroid Build Coastguard Worker        _133 = false;
82*c8dee2aaSAndroid Build Coastguard Worker    }
83*c8dee2aaSAndroid Build Coastguard Worker    bool _144 = false;
84*c8dee2aaSAndroid Build Coastguard Worker    if (_133)
85*c8dee2aaSAndroid Build Coastguard Worker    {
86*c8dee2aaSAndroid Build Coastguard Worker        _144 = all(bool3(data.outer[1].inner[1].values.x == float3(5.0f, 50.0f, 500.0f).x, data.outer[1].inner[1].values.y == float3(5.0f, 50.0f, 500.0f).y, data.outer[1].inner[1].values.z == float3(5.0f, 50.0f, 500.0f).z));
87*c8dee2aaSAndroid Build Coastguard Worker    }
88*c8dee2aaSAndroid Build Coastguard Worker    else
89*c8dee2aaSAndroid Build Coastguard Worker    {
90*c8dee2aaSAndroid Build Coastguard Worker        _144 = false;
91*c8dee2aaSAndroid Build Coastguard Worker    }
92*c8dee2aaSAndroid Build Coastguard Worker    bool _155 = false;
93*c8dee2aaSAndroid Build Coastguard Worker    if (_144)
94*c8dee2aaSAndroid Build Coastguard Worker    {
95*c8dee2aaSAndroid Build Coastguard Worker        _155 = all(bool3(data.outer[1].inner[2].values.x == float3(6.0f, 60.0f, 600.0f).x, data.outer[1].inner[2].values.y == float3(6.0f, 60.0f, 600.0f).y, data.outer[1].inner[2].values.z == float3(6.0f, 60.0f, 600.0f).z));
96*c8dee2aaSAndroid Build Coastguard Worker    }
97*c8dee2aaSAndroid Build Coastguard Worker    else
98*c8dee2aaSAndroid Build Coastguard Worker    {
99*c8dee2aaSAndroid Build Coastguard Worker        _155 = false;
100*c8dee2aaSAndroid Build Coastguard Worker    }
101*c8dee2aaSAndroid Build Coastguard Worker    bool _166 = false;
102*c8dee2aaSAndroid Build Coastguard Worker    if (_155)
103*c8dee2aaSAndroid Build Coastguard Worker    {
104*c8dee2aaSAndroid Build Coastguard Worker        _166 = all(bool3(data.outer[2].inner[0].values.x == float3(7.0f, 70.0f, 700.0f).x, data.outer[2].inner[0].values.y == float3(7.0f, 70.0f, 700.0f).y, data.outer[2].inner[0].values.z == float3(7.0f, 70.0f, 700.0f).z));
105*c8dee2aaSAndroid Build Coastguard Worker    }
106*c8dee2aaSAndroid Build Coastguard Worker    else
107*c8dee2aaSAndroid Build Coastguard Worker    {
108*c8dee2aaSAndroid Build Coastguard Worker        _166 = false;
109*c8dee2aaSAndroid Build Coastguard Worker    }
110*c8dee2aaSAndroid Build Coastguard Worker    bool _177 = false;
111*c8dee2aaSAndroid Build Coastguard Worker    if (_166)
112*c8dee2aaSAndroid Build Coastguard Worker    {
113*c8dee2aaSAndroid Build Coastguard Worker        _177 = all(bool3(data.outer[2].inner[1].values.x == float3(8.0f, 80.0f, 800.0f).x, data.outer[2].inner[1].values.y == float3(8.0f, 80.0f, 800.0f).y, data.outer[2].inner[1].values.z == float3(8.0f, 80.0f, 800.0f).z));
114*c8dee2aaSAndroid Build Coastguard Worker    }
115*c8dee2aaSAndroid Build Coastguard Worker    else
116*c8dee2aaSAndroid Build Coastguard Worker    {
117*c8dee2aaSAndroid Build Coastguard Worker        _177 = false;
118*c8dee2aaSAndroid Build Coastguard Worker    }
119*c8dee2aaSAndroid Build Coastguard Worker    bool _188 = false;
120*c8dee2aaSAndroid Build Coastguard Worker    if (_177)
121*c8dee2aaSAndroid Build Coastguard Worker    {
122*c8dee2aaSAndroid Build Coastguard Worker        _188 = all(bool3(data.outer[2].inner[2].values.x == float3(9.0f, 90.0f, 900.0f).x, data.outer[2].inner[2].values.y == float3(9.0f, 90.0f, 900.0f).y, data.outer[2].inner[2].values.z == float3(9.0f, 90.0f, 900.0f).z));
123*c8dee2aaSAndroid Build Coastguard Worker    }
124*c8dee2aaSAndroid Build Coastguard Worker    else
125*c8dee2aaSAndroid Build Coastguard Worker    {
126*c8dee2aaSAndroid Build Coastguard Worker        _188 = false;
127*c8dee2aaSAndroid Build Coastguard Worker    }
128*c8dee2aaSAndroid Build Coastguard Worker    bool ok = _188;
129*c8dee2aaSAndroid Build Coastguard Worker    float4 _189 = 0.0f.xxxx;
130*c8dee2aaSAndroid Build Coastguard Worker    if (_188)
131*c8dee2aaSAndroid Build Coastguard Worker    {
132*c8dee2aaSAndroid Build Coastguard Worker        _189 = _7_colorGreen;
133*c8dee2aaSAndroid Build Coastguard Worker    }
134*c8dee2aaSAndroid Build Coastguard Worker    else
135*c8dee2aaSAndroid Build Coastguard Worker    {
136*c8dee2aaSAndroid Build Coastguard Worker        _189 = _7_colorRed;
137*c8dee2aaSAndroid Build Coastguard Worker    }
138*c8dee2aaSAndroid Build Coastguard Worker    return _189;
139*c8dee2aaSAndroid Build Coastguard Worker}
140*c8dee2aaSAndroid Build Coastguard Worker
141*c8dee2aaSAndroid Build Coastguard Workervoid frag_main()
142*c8dee2aaSAndroid Build Coastguard Worker{
143*c8dee2aaSAndroid Build Coastguard Worker    float2 _17 = 0.0f.xx;
144*c8dee2aaSAndroid Build Coastguard Worker    sk_FragColor = main(_17);
145*c8dee2aaSAndroid Build Coastguard Worker}
146*c8dee2aaSAndroid Build Coastguard Worker
147*c8dee2aaSAndroid Build Coastguard WorkerSPIRV_Cross_Output main()
148*c8dee2aaSAndroid Build Coastguard Worker{
149*c8dee2aaSAndroid Build Coastguard Worker    frag_main();
150*c8dee2aaSAndroid Build Coastguard Worker    SPIRV_Cross_Output stage_output;
151*c8dee2aaSAndroid Build Coastguard Worker    stage_output.sk_FragColor = sk_FragColor;
152*c8dee2aaSAndroid Build Coastguard Worker    return stage_output;
153*c8dee2aaSAndroid Build Coastguard Worker}
154