From 8bd7f1d44bd00362a6a0db7614ef53a8b81b3db8 Mon Sep 17 00:00:00 2001 From: Jose Maria Casanova Crespo Date: Fri, 8 May 2026 11:21:12 +0200 Subject: [PATCH] v3dv: include mem_offset in vkCmdFillBuffer destination v3dv_CmdFillBuffer was passing only the user-supplied dstOffset to meta_fill_buffer, ignoring the destination VkBuffer's mem_offset. When several VkBuffers share one VkDeviceMemory at different offsets (sub-allocation) the fill landed on whichever VkBuffer was bound at offset 0 of the memory object instead of the requested one. Fixes: 5ed78d91fed ("v3dv: implement vkCmdFillBuffer") Assisted-by: Claude Opus 4.7 Reviewed-by: Iago Toral Quiroga Part-of: --- src/broadcom/vulkan/v3dv_meta_copy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c index b2c99cdf6c1..ddd75486ace 100644 --- a/src/broadcom/vulkan/v3dv_meta_copy.c +++ b/src/broadcom/vulkan/v3dv_meta_copy.c @@ -1862,7 +1862,7 @@ v3dv_CmdFillBuffer(VkCommandBuffer commandBuffer, } v3d_X((&cmd_buffer->device->devinfo), meta_fill_buffer) - (cmd_buffer, bo, dstOffset, size, data); + (cmd_buffer, bo, dst_buffer->mem_offset + dstOffset, size, data); cmd_buffer->state.is_transfer = false; }