From: Jeff Bolz Date: Wed, 29 Oct 2025 08:53:04 +0000 (-0500) Subject: vulkan: Call ggml_vk_buffer_write_2d from ggml_vk_buffer_copy (llama/16793) X-Git-Tag: upstream/0.9.4.185~66 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=33a1faf20a6577d2921990df964c4c3df100a058;p=pkg%2Fggml%2Fsources%2Fggml vulkan: Call ggml_vk_buffer_write_2d from ggml_vk_buffer_copy (llama/16793) This lets the copy to the destination device use the host-visible vidmem optimization. --- diff --git a/src/ggml-vulkan/ggml-vulkan.cpp b/src/ggml-vulkan/ggml-vulkan.cpp index 173677a2..5caf37d4 100644 --- a/src/ggml-vulkan/ggml-vulkan.cpp +++ b/src/ggml-vulkan/ggml-vulkan.cpp @@ -5652,14 +5652,11 @@ static void ggml_vk_buffer_copy(vk_buffer& dst, size_t dst_offset, vk_buffer& sr VK_LOG_DEBUG("ggml_vk_buffer_copy(MULTI_DEVICE, " << size << ")"); // Copy device to device ggml_vk_ensure_sync_staging_buffer(src->device, size); - ggml_vk_ensure_sync_staging_buffer(dst->device, size); // Copy to src staging buffer ggml_vk_buffer_copy(src->device->sync_staging, 0, src, src_offset, size); - // memcpy to dst staging buffer - memcpy(dst->device->sync_staging->ptr, src->device->sync_staging->ptr, size); // Copy to dst buffer - ggml_vk_buffer_copy(dst, dst_offset, dst->device->sync_staging, 0, size); + ggml_vk_buffer_write_2d(dst, dst_offset, src->device->sync_staging->ptr, 0, size, 1); } }