From b8bff744e544ed428f1293ef9630b74dc2a0784d Mon Sep 17 00:00:00 2001 From: narzoul Date: Sat, 27 Jun 2020 11:12:13 +0200 Subject: [PATCH] Fixed sysmem/vidmem synchronization issues on integrated AMD GPUs --- DDrawCompat/D3dDdi/Resource.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/DDrawCompat/D3dDdi/Resource.cpp b/DDrawCompat/D3dDdi/Resource.cpp index ba4cdce..0c60a72 100644 --- a/DDrawCompat/D3dDdi/Resource.cpp +++ b/DDrawCompat/D3dDdi/Resource.cpp @@ -336,6 +336,19 @@ namespace D3dDdi { LOG_ONCE("ERROR: Resource::copySubResource failed: " << Compat::hex(result)); } + + D3DDDIARG_LOCK lock = {}; + lock.hResource = m_lockResource.get(); + lock.SubResourceIndex = subResourceIndex; + lock.Flags.NotifyOnly = 1; + m_device.getOrigVtable().pfnLock(m_device, &lock); + + D3DDDIARG_UNLOCK unlock = {}; + unlock.hResource = m_lockResource.get(); + unlock.SubResourceIndex = subResourceIndex; + unlock.Flags.NotifyOnly = 1; + m_device.getOrigVtable().pfnUnlock(m_device, &unlock); + return LOG_RESULT(result); }