James Price | f6e5cc0 | 2022-01-20 22:11:07 +0000 | [diff] [blame] | 1 | type ArrayType = array<vec4<i32>, 4>; |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 2 | |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 3 | struct S { |
James Price | 3b671cb | 2022-03-28 14:31:22 +0000 | [diff] [blame] | 4 | arr : ArrayType, |
James Price | 6b1e5f5 | 2022-01-19 18:11:17 +0000 | [diff] [blame] | 5 | } |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 6 | |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 7 | struct S_nested { |
James Price | 3b671cb | 2022-03-28 14:31:22 +0000 | [diff] [blame] | 8 | arr : array<array<array<i32, 2>, 3>, 4>, |
James Price | 6b1e5f5 | 2022-01-19 18:11:17 +0000 | [diff] [blame] | 9 | } |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 10 | |
| 11 | var<private> src_private : ArrayType; |
| 12 | |
| 13 | var<workgroup> src_workgroup : ArrayType; |
| 14 | |
Ben Clayton | 01e4b6f | 2022-01-19 22:46:57 +0000 | [diff] [blame] | 15 | @group(0) @binding(0) var<uniform> src_uniform : S; |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 16 | |
Ben Clayton | 01e4b6f | 2022-01-19 22:46:57 +0000 | [diff] [blame] | 17 | @group(0) @binding(1) var<storage, read_write> src_storage : S; |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 18 | |
Ben Clayton | 01e4b6f | 2022-01-19 22:46:57 +0000 | [diff] [blame] | 19 | @group(0) @binding(2) var<storage, read_write> dst : S; |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 20 | |
Ben Clayton | 01e4b6f | 2022-01-19 22:46:57 +0000 | [diff] [blame] | 21 | @group(0) @binding(3) var<storage, read_write> dst_nested : S_nested; |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 22 | |
| 23 | fn ret_arr() -> ArrayType { |
| 24 | return ArrayType(); |
| 25 | } |
| 26 | |
| 27 | fn ret_struct_arr() -> S { |
| 28 | return S(); |
| 29 | } |
| 30 | |
| 31 | fn foo(src_param : ArrayType) { |
| 32 | var src_function : ArrayType; |
James Price | f6e5cc0 | 2022-01-20 22:11:07 +0000 | [diff] [blame] | 33 | dst.arr = ArrayType(vec4(1), vec4(2), vec4(3), vec4(3)); |
James Price | 94ac078 | 2021-06-02 17:23:03 +0000 | [diff] [blame] | 34 | dst.arr = src_param; |
| 35 | dst.arr = ret_arr(); |
| 36 | let src_let : ArrayType = ArrayType(); |
| 37 | dst.arr = src_let; |
| 38 | dst.arr = src_function; |
| 39 | dst.arr = src_private; |
| 40 | dst.arr = src_workgroup; |
| 41 | dst.arr = ret_struct_arr().arr; |
| 42 | dst.arr = src_uniform.arr; |
| 43 | dst.arr = src_storage.arr; |
| 44 | var src_nested : array<array<array<i32, 2>, 3>, 4>; |
| 45 | dst_nested.arr = src_nested; |
| 46 | } |