mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-21 19:48:08 +02:00
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> |
||
|---|---|---|
| .. | ||
| radv_meta.c | ||
| radv_meta.h | ||
| radv_meta_astc_decode.c | ||
| radv_meta_blit.c | ||
| radv_meta_blit2d.c | ||
| radv_meta_buffer.c | ||
| radv_meta_bufimage.c | ||
| radv_meta_clear.c | ||
| radv_meta_copy.c | ||
| radv_meta_copy_vrs_htile.c | ||
| radv_meta_dcc_retile.c | ||
| radv_meta_decompress.c | ||
| radv_meta_etc_decode.c | ||
| radv_meta_fast_clear.c | ||
| radv_meta_fmask_copy.c | ||
| radv_meta_fmask_expand.c | ||
| radv_meta_resolve.c | ||
| radv_meta_resolve_cs.c | ||
| radv_meta_resolve_fs.c | ||