mesa/src
Jose Maria Casanova Crespo 9b131eb86e v3dv: Enable meta_copy_buffer with TFU for V3D 7.1
Buffer-to-buffer copies on V3D 7.1+ can be served by the TFU as a
raster-to-raster copy, avoiding the per-copy CL render job and
tile_alloc/TSDA BO overhead of the TLB-based path.

Treat the buffer as a raster texture and chunk the copy into TFU
jobs of up to 16384x16384 pixels. Pick the largest pixel size
(cpp in {4,2,1}) such that src/dst offsets and size are all
cpp-aligned: cpp=4 (R8G8B8A8_UINT) is the expected common case;
cpp=2 (R8G8_UINT) and cpp=1 (R8_UINT) handle Vulkan-permitted
unaligned vkCmdCopyBuffer regions that would otherwise fall back
to the slow TLB path. Skipped when V3D_DEBUG=disable_tfu is set;
emits perf_debug when the cpp=1/2 fallback is taken.

Drop the `if (copy_job)` guard on src_bo cleanup registration in
v3dv_CmdUpdateBuffer: the TFU path queues jobs without returning a
v3dv_job*, so the staging BO must be tracked unconditionally to
avoid leaking once the cmd buffer is submitted.

Assisted-by: Claude Opus 4.7
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41725>
2026-05-26 07:50:42 +00:00
..
amd ac/nir: Fix SMEM workaround with emulated RT 2026-05-25 23:32:13 +00:00
android_stub android_stub: purge unused log utils 2026-05-01 20:23:23 +00:00
asahi util: pass a struct to driParseConfigFiles() 2026-05-19 19:51:45 +00:00
broadcom v3dv: Enable meta_copy_buffer with TFU for V3D 7.1 2026-05-26 07:50:42 +00:00
c11 c11/threads: fix build on c23 2025-11-10 07:01:50 +10:00
compiler nir/opt_algebraic: add more ffract/ffloor/ftrunc/f2u/f2i patterns 2026-05-25 20:02:30 +00:00
drm-shim drm-shim: fix shim on GLX 2026-04-14 12:06:10 +00:00
egl egl/dri2: require valid render fd before advertising EGL_WL_bind_wayland_display 2026-05-13 16:16:48 +00:00
etnaviv Uprev Piglit to 6fd29fe44f8857b876a67bee962919635f22ecc8 2026-05-20 21:37:44 +00:00
freedreno Uprev ANGLE to a793c75398c746f3f8a08fd2e74dfc4dff07a0c9 2026-05-26 06:58:28 +00:00
gallium v3d/v3dv: use common compute limits 2026-05-26 07:13:22 +01:00
gbm gbm: Replace VER_MIN with common MIN2 2026-04-30 13:00:03 +00:00
getopt
gfxstream gfxstream: codegen: drop const from let-param scalar cast 2026-05-23 06:54:37 +00:00
glx glx/windows: Drop static from driwindowsCreateScreen() 2026-05-18 13:33:35 +00:00
gtest
imagination util: pass a struct to driParseConfigFiles() 2026-05-19 19:51:45 +00:00
imgui imgui: update copy and port all tools using it 2026-04-30 10:59:45 +00:00
intel anv, brw: Use previous shader VUE map for FS input layout when available 2026-05-23 05:17:37 +00:00
kosmickrisp kk: Enable code formatting enforcement 2026-05-25 15:30:32 +00:00
loader util: pass a struct to driParseConfigFiles() 2026-05-19 19:51:45 +00:00
mesa mesa/st: remove redundant has_hw_atomics from st_context 2026-05-25 17:22:46 +00:00
microsoft util: pass a struct to driParseConfigFiles() 2026-05-19 19:51:45 +00:00
nouveau nvk: enable VK_KHR_shader_fma 2026-05-25 14:27:51 +00:00
panfrost panvk/csf: Inline the SPD addr helpers 2026-05-22 19:54:53 +00:00
poly panvk/csf: implement VK_EXT_primitives_generated_query primitive restart 2026-01-21 09:03:34 +00:00
tool pps: Re-emit time clock_sync more regularly 2026-05-06 21:37:15 +00:00
util radv: rename radv_zero_vram to vk_zero_vram 2026-05-25 16:49:28 +00:00
virtio meson: Add Soong compatibility compiler flags to Vulkan drivers 2026-05-22 07:09:49 +00:00
vulkan meson: Add Soong compatibility compiler flags to Vulkan drivers 2026-05-22 07:09:49 +00:00
x11 meson: Add support for buidling zink + Turnip/KGSL 2026-03-31 15:00:29 +00:00
.clang-format intel: add Jay 2026-04-10 18:21:21 +00:00
meson.build gallium/dril: Don't use gbm if there is no gbm configured 2026-02-17 08:24:02 +00:00