From b38a45e784a06e5f4db089cd1f6874d91373cd9d Mon Sep 17 00:00:00 2001 From: Michalis Kamburelis Date: Mon, 22 Dec 2025 18:04:05 +0100 Subject: [PATCH] Avoid using memory mapping on AMD --- src/PasVulkan.Framework.pas | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/PasVulkan.Framework.pas b/src/PasVulkan.Framework.pas index 26d0d640d..a0b61ebaa 100644 --- a/src/PasVulkan.Framework.pas +++ b/src/PasVulkan.Framework.pas @@ -16265,9 +16265,14 @@ function TpvVulkanDeviceMemoryStaging.Download(const aTransferQueue:TpvVulkanQue Source:Pointer; Destination:PpvUInt8; VkBufferCopy:TVkBufferCopy; + EnableMemoryMap:boolean; begin + { Using Move for memory-mapped buffer causes hands at AMD. } + EnableMemoryMap:=Device.PhysicalDevice.Properties.vendorID<> + TpvUInt32(TpvVulkanVendorID.AMD); - if (TpvVulkanBufferFlag.PersistentMapped in aSourceBuffer.fBufferFlags) and + if EnableMemoryMap and + (TpvVulkanBufferFlag.PersistentMapped in aSourceBuffer.fBufferFlags) and ((aSourceBuffer.fMemoryPropertyFlags and TVkMemoryPropertyFlags(VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT))<>0) then begin Source:=aSourceBuffer.Memory.MapMemory;