xref: /aosp_15_r20/external/skia/tests/sksl/shared/StructIndexStore.hlsl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1struct InnerLUT
2{
3    float3 values;
4};
5
6struct OuterLUT
7{
8    InnerLUT inner[3];
9};
10
11struct Root
12{
13    int valueAtRoot;
14    OuterLUT outer[3];
15};
16
17cbuffer _UniformBuffer : register(b0, space0)
18{
19    float4 _7_colorGreen : packoffset(c0);
20    float4 _7_colorRed : packoffset(c1);
21};
22
23
24static float4 sk_FragColor;
25
26struct SPIRV_Cross_Output
27{
28    float4 sk_FragColor : SV_Target0;
29};
30
31float4 main(float2 _21)
32{
33    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    data.valueAtRoot = 1234;
35    float3 values = 0.0f.xxx;
36    for (int i = 0; i < 3; i++)
37    {
38        for (int j = 0; j < 3; j++)
39        {
40            values += float3(1.0f, 10.0f, 100.0f);
41            for (int k = 0; k < 3; k++)
42            {
43                data.outer[i].inner[j].values[k] = values[k];
44            }
45        }
46    }
47    bool _99 = false;
48    if (data.valueAtRoot == 1234)
49    {
50        _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    }
52    else
53    {
54        _99 = false;
55    }
56    bool _110 = false;
57    if (_99)
58    {
59        _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    }
61    else
62    {
63        _110 = false;
64    }
65    bool _122 = false;
66    if (_110)
67    {
68        _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    }
70    else
71    {
72        _122 = false;
73    }
74    bool _133 = false;
75    if (_122)
76    {
77        _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    }
79    else
80    {
81        _133 = false;
82    }
83    bool _144 = false;
84    if (_133)
85    {
86        _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    }
88    else
89    {
90        _144 = false;
91    }
92    bool _155 = false;
93    if (_144)
94    {
95        _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    }
97    else
98    {
99        _155 = false;
100    }
101    bool _166 = false;
102    if (_155)
103    {
104        _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    }
106    else
107    {
108        _166 = false;
109    }
110    bool _177 = false;
111    if (_166)
112    {
113        _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    }
115    else
116    {
117        _177 = false;
118    }
119    bool _188 = false;
120    if (_177)
121    {
122        _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    }
124    else
125    {
126        _188 = false;
127    }
128    bool ok = _188;
129    float4 _189 = 0.0f.xxxx;
130    if (_188)
131    {
132        _189 = _7_colorGreen;
133    }
134    else
135    {
136        _189 = _7_colorRed;
137    }
138    return _189;
139}
140
141void frag_main()
142{
143    float2 _17 = 0.0f.xx;
144    sk_FragColor = main(_17);
145}
146
147SPIRV_Cross_Output main()
148{
149    frag_main();
150    SPIRV_Cross_Output stage_output;
151    stage_output.sk_FragColor = sk_FragColor;
152    return stage_output;
153}
154