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 = {(float[4])0}; const tint_array_wrapper_1 a2 = {(tint_array_wrapper[3])0}; const tint_array_wrapper_2 a3 = {(tint_array_wrapper_1[2])0}; const float v1 = f1(a1); const float v2 = f2(a2); const float v3 = f3(a3); return; }