Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 1 | #version 310 es |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 2 | |
| 3 | layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; |
| 4 | void unused_entry_point() { |
| 5 | return; |
| 6 | } |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 7 | struct S { |
| 8 | ivec4 arr[4]; |
| 9 | }; |
Stephen White | e2f35ba | 2022-01-26 16:48:55 +0000 | [diff] [blame] | 10 | |
Zhaoming Jiang | 6ab5d3c | 2022-11-02 02:25:38 +0000 | [diff] [blame] | 11 | struct S_nested { |
| 12 | int arr[4][3][2]; |
| 13 | }; |
| 14 | |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 15 | ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0)); |
| 16 | shared ivec4 src_workgroup[4]; |
Stephen White | 05d8b02 | 2022-09-13 19:48:51 +0000 | [diff] [blame] | 17 | layout(binding = 0, std140) uniform src_uniform_block_ubo { |
Stephen White | 863d9ed | 2022-09-02 19:19:10 +0000 | [diff] [blame] | 18 | S inner; |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 19 | } src_uniform; |
Stephen White | e2f35ba | 2022-01-26 16:48:55 +0000 | [diff] [blame] | 20 | |
Stephen White | 863d9ed | 2022-09-02 19:19:10 +0000 | [diff] [blame] | 21 | layout(binding = 1, std430) buffer src_uniform_block_ssbo { |
| 22 | S inner; |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 23 | } src_storage; |
Stephen White | 863d9ed | 2022-09-02 19:19:10 +0000 | [diff] [blame] | 24 | |
| 25 | layout(binding = 2, std430) buffer src_uniform_block_ssbo_1 { |
| 26 | S inner; |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 27 | } dst; |
Stephen White | 863d9ed | 2022-09-02 19:19:10 +0000 | [diff] [blame] | 28 | |
Zhaoming Jiang | 6ab5d3c | 2022-11-02 02:25:38 +0000 | [diff] [blame] | 29 | layout(binding = 3, std430) buffer dst_nested_block_ssbo { |
| 30 | S_nested inner; |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 31 | } dst_nested; |
Stephen White | 863d9ed | 2022-09-02 19:19:10 +0000 | [diff] [blame] | 32 | |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 33 | ivec4[4] ret_arr() { |
Ben Clayton | da353b4 | 2023-03-08 21:48:45 +0000 | [diff] [blame] | 34 | ivec4 tint_symbol_1[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0)); |
| 35 | return tint_symbol_1; |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 36 | } |
| 37 | |
| 38 | S ret_struct_arr() { |
Ben Clayton | da353b4 | 2023-03-08 21:48:45 +0000 | [diff] [blame] | 39 | S tint_symbol_2 = S(ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0))); |
| 40 | return tint_symbol_2; |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 41 | } |
| 42 | |
| 43 | void foo(ivec4 src_param[4]) { |
| 44 | ivec4 src_function[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0)); |
Ben Clayton | da353b4 | 2023-03-08 21:48:45 +0000 | [diff] [blame] | 45 | ivec4 tint_symbol_3[4] = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3)); |
| 46 | dst.inner.arr = tint_symbol_3; |
Stephen White | 863d9ed | 2022-09-02 19:19:10 +0000 | [diff] [blame] | 47 | dst.inner.arr = src_param; |
Ben Clayton | da353b4 | 2023-03-08 21:48:45 +0000 | [diff] [blame] | 48 | dst.inner.arr = ret_arr(); |
Ben Clayton | 19576e9 | 2022-06-28 12:44:16 +0000 | [diff] [blame] | 49 | ivec4 src_let[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0)); |
Stephen White | 863d9ed | 2022-09-02 19:19:10 +0000 | [diff] [blame] | 50 | dst.inner.arr = src_let; |
| 51 | dst.inner.arr = src_function; |
| 52 | dst.inner.arr = src_private; |
| 53 | dst.inner.arr = src_workgroup; |
Ben Clayton | da353b4 | 2023-03-08 21:48:45 +0000 | [diff] [blame] | 54 | S tint_symbol = ret_struct_arr(); |
| 55 | dst.inner.arr = tint_symbol.arr; |
Stephen White | 863d9ed | 2022-09-02 19:19:10 +0000 | [diff] [blame] | 56 | dst.inner.arr = src_uniform.inner.arr; |
| 57 | dst.inner.arr = src_storage.inner.arr; |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 58 | int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0))); |
Zhaoming Jiang | 6ab5d3c | 2022-11-02 02:25:38 +0000 | [diff] [blame] | 59 | dst_nested.inner.arr = src_nested; |
Stephen White | 671d970 | 2022-01-21 18:40:18 +0000 | [diff] [blame] | 60 | } |
Stephen White | e2f35ba | 2022-01-26 16:48:55 +0000 | [diff] [blame] | 61 | |