From 7628966f800434dc1ef2a75868a862a53a6175d1 Mon Sep 17 00:00:00 2001 From: Szymon Morek Date: Wed, 28 Aug 2024 09:25:52 +0000 Subject: [PATCH] fix: change mutex when destroying allocation Current mutex is not preventing destroying resources when trim callback is currently evicting same allocation. New mutex does. Signed-off-by: Szymon Morek --- shared/source/os_interface/windows/wddm_memory_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/source/os_interface/windows/wddm_memory_manager.cpp b/shared/source/os_interface/windows/wddm_memory_manager.cpp index e400524939..3f7cfbc6a3 100644 --- a/shared/source/os_interface/windows/wddm_memory_manager.cpp +++ b/shared/source/os_interface/windows/wddm_memory_manager.cpp @@ -720,7 +720,7 @@ void WddmMemoryManager::freeGraphicsMemoryImpl(GraphicsAllocation *gfxAllocation auto ®isteredEngines = getRegisteredEngines(gfxAllocation->getRootDeviceIndex()); for (auto &engine : registeredEngines) { auto &residencyController = static_cast(engine.osContext)->getResidencyController(); - auto lock = residencyController.acquireLock(); + auto lock = residencyController.acquireTrimCallbackLock(); auto &evictContainer = engine.commandStreamReceiver->getEvictionAllocations(); auto iter = std::find(evictContainer.begin(), evictContainer.end(), gfxAllocation); if (iter != evictContainer.end()) {