Skip to content
7 changes: 6 additions & 1 deletion src/PasVulkan.Framework.pas
Original file line number Diff line number Diff line change
Expand Up @@ -16966,9 +16966,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;
Expand Down