uniform half4 colorGreen, colorRed;

struct InnerLUT {
    float3 values;
};
struct OuterLUT {
    InnerLUT inner[3];
};
struct Root {
    int valueAtRoot;
    OuterLUT outer[3];
};

half4 main(float2 coords) {
    Root data;
    data.valueAtRoot = 1234;
    float3 values = float3(0);

    for (int i=0; i<3; ++i) {
        for (int j=0; j<3; ++j) {
            values += float3(1, 10, 100);

            for (int k=0; k<3; ++k) {
                data.outer[i].inner[j].values[k] = values[k];
            }
        }
    }

    bool ok = data.valueAtRoot              == 1234
           && data.outer[0].inner[0].values == float3(1, 10, 100)
           && data.outer[0].inner[1].values == float3(2, 20, 200)
           && data.outer[0].inner[2].values == float3(3, 30, 300)
           && data.outer[1].inner[0].values == float3(4, 40, 400)
           && data.outer[1].inner[1].values == float3(5, 50, 500)
           && data.outer[1].inner[2].values == float3(6, 60, 600)
           && data.outer[2].inner[0].values == float3(7, 70, 700)
           && data.outer[2].inner[1].values == float3(8, 80, 800)
           && data.outer[2].inner[2].values == float3(9, 90, 900);

    return ok ? colorGreen : colorRed;
}
