mesa/src/amd/vulkan/meta
Timur Kristóf a19e46f5d0 radv: Implement workaround for unaligned buffer/image copies.
When the pitch or slice pitch isn't properly aligned,
the SDMA HW is unable to copy between tiled images and buffers.

To work around this, we process the image chunk by chunk,
copying the data to a temporary buffer which uses supported
pitches, and then copy it to the intended destination.

The implementation assumes that at least one pixel row of the
image will fit into the temporary buffer, and will try to copy
as many rows at once as possible. Sadly, this still results in
a lot of packets being generated for large images.

A possibe future improvement is to copy the image slice by slice
when only the slice pitch is misaligned. However, that is out
of scope for this commit.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25831>
2023-11-01 13:21:01 +00:00
..
radv_meta.c radv: integrate meta astc compute decoder to radv 2023-10-11 19:28:40 +00:00
radv_meta.h radv: integrate meta astc compute decoder to radv 2023-10-11 19:28:40 +00:00
radv_meta_astc_decode.c radv: integrate meta astc compute decoder to radv 2023-10-11 19:28:40 +00:00
radv_meta_blit.c nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
radv_meta_blit2d.c nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
radv_meta_buffer.c ac: drop 64 bit handling for cl workgroup intrinsics 2023-08-30 07:04:33 +00:00
radv_meta_bufimage.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
radv_meta_clear.c radv/gfx11: re-enable 0001/1110 clear values 2023-08-16 18:38:24 +00:00
radv_meta_copy.c radv: Implement workaround for unaligned buffer/image copies. 2023-11-01 13:21:01 +00:00
radv_meta_copy_vrs_htile.c nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
radv_meta_dcc_retile.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
radv_meta_decompress.c nir: make workgroup_id 32 bit only 2023-08-30 07:04:33 +00:00
radv_meta_etc_decode.c radv: use vk_tecompress_etc2 from the runtime 2023-10-06 00:55:18 +00:00
radv_meta_fast_clear.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
radv_meta_fmask_copy.c nir: make workgroup_id 32 bit only 2023-08-30 07:04:33 +00:00
radv_meta_fmask_expand.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
radv_meta_resolve.c radv: allow VK_REMAINING_ARRAY_LAYERS with VkImageSubresourceLayers 2023-08-10 03:05:02 +00:00
radv_meta_resolve_cs.c nir: Drop nir_dest 2023-08-14 21:22:53 +00:00
radv_meta_resolve_fs.c nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00