From 203970cec1e9b6463a12e89a4e58038ea2bf8d67 Mon Sep 17 00:00:00 2001 From: cdozdil Date: Fri, 6 Mar 2026 09:35:36 +0300 Subject: [PATCH] More fixes to XeFG swapchain release --- OptiScaler/framegen/xefg/XeFG_Dx12.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/OptiScaler/framegen/xefg/XeFG_Dx12.cpp b/OptiScaler/framegen/xefg/XeFG_Dx12.cpp index e3f369eb..36683055 100644 --- a/OptiScaler/framegen/xefg/XeFG_Dx12.cpp +++ b/OptiScaler/framegen/xefg/XeFG_Dx12.cpp @@ -65,8 +65,8 @@ bool XeFG_Dx12::CreateSwapchainContext(ID3D12Device* device) LOG_ERROR("SetLoggingCallback error: {} ({})", magic_enum::enum_name(result), (UINT) result); } - if (XeLLProxy::Context() == nullptr) - XeLLProxy::CreateContext(device); + // if (XeLLProxy::Context() == nullptr) + XeLLProxy::CreateContext(device); if (XeLLProxy::Context() != nullptr) { @@ -1441,7 +1441,14 @@ bool XeFG_Dx12::ReleaseSwapchain(HWND hwnd) // if (State::Instance().isShuttingDown && _swapChainContext != nullptr) // DestroySwapchainContext(); + if (State::Instance().isShuttingDown) + { + _swapChainContext = nullptr; + State::Instance().currentFGSwapchain = nullptr; + } + ReleaseObjects(); + XeLLProxy::DestroyXeLLContext(); if (Config::Instance()->FGUseMutexForSwapchain.value_or_default()) {