From d0a556c30ef820ee593d3a884fa17e6933904f5f Mon Sep 17 00:00:00 2001 From: cdozdil Date: Thu, 17 Sep 2026 18:01:34 +0300 Subject: [PATCH] Remove mutex from loop --- OptiScaler/resource_tracking/ResTrack_dx12.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/OptiScaler/resource_tracking/ResTrack_dx12.cpp b/OptiScaler/resource_tracking/ResTrack_dx12.cpp index ca96be25..7019d956 100644 --- a/OptiScaler/resource_tracking/ResTrack_dx12.cpp +++ b/OptiScaler/resource_tracking/ResTrack_dx12.cpp @@ -1420,10 +1420,9 @@ void ResTrack_Dx12::hkDrawInstanced(ID3D12GraphicsCommandList* This, UINT Vertex if (Config::Instance()->FGHudfixDisableDI.value_or_default()) break; + std::lock_guard lock(_drawMutex); for (auto& [key, val] : val0) { - std::lock_guard lock(_drawMutex); - val.captureInfo |= CaptureInfo::DrawInstanced; if (Hudfix_Dx12::CheckForHudless(This, &val, val.state)) @@ -1531,11 +1530,10 @@ void ResTrack_Dx12::hkDrawIndexedInstanced(ID3D12GraphicsCommandList* This, UINT if (Config::Instance()->FGHudfixDisableDII.value_or_default()) break; + std::lock_guard lock(_drawMutex); for (auto& [key, val] : val0) { // LOG_DEBUG("Waiting _drawMutex {:X}", (size_t)val.buffer); - std::lock_guard lock(_drawMutex); - val.captureInfo |= CaptureInfo::DrawIndexedInstanced; if (Hudfix_Dx12::CheckForHudless(This, &val, val.state)) @@ -1714,11 +1712,10 @@ void ResTrack_Dx12::hkDispatch(ID3D12GraphicsCommandList* This, UINT ThreadGroup if (Config::Instance()->FGHudfixDisableDispatch.value_or_default()) break; + std::lock_guard lock(_drawMutex); for (auto& [key, val] : val0) { // LOG_DEBUG("Waiting _drawMutex {:X}", (size_t)val.buffer); - std::lock_guard lock(_drawMutex); - val.captureInfo |= CaptureInfo::Dispatch; if (Hudfix_Dx12::CheckForHudless(This, &val, val.state)) {