struct tint_array_wrapper { float arr[4]; }; float f1(tint_array_wrapper a) { return a.arr[3]; } struct tint_array_wrapper_1 { tint_array_wrapper arr[3]; }; float f2(tint_array_wrapper_1 a) { return a.arr[2].arr[3]; } struct tint_array_wrapper_2 { tint_array_wrapper_1 arr[2]; }; float f3(tint_array_wrapper_2 a) { return a.arr[1].arr[2].arr[3]; } [numthreads(1, 1, 1)] void main() { const tint_array_wrapper a1 = {{0.0f, 0.0f, 0.0f, 0.0f}}; const tint_array_wrapper_1 a2 = {{{{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}}}; const tint_array_wrapper_2 a3 = {{{{{{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}}}, {{{{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}}}}}; const float v1 = f1(a1); const float v2 = f2(a2); const float v3 = f3(a3); return; }