From 1f877c900b4409343e75fcbafb2a9df7646deea6 Mon Sep 17 00:00:00 2001 From: cdozdil Date: Sun, 16 Mar 2025 17:06:05 +0300 Subject: [PATCH] Temporary fix for in-game menu crash on Linux --- OptiScaler/dllmain.cpp | 4 ++++ OptiScaler/dllmain.h | 4 ++++ OptiScaler/hooks/HooksDx.cpp | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/OptiScaler/dllmain.cpp b/OptiScaler/dllmain.cpp index 64345bde..f7d672b5 100644 --- a/OptiScaler/dllmain.cpp +++ b/OptiScaler/dllmain.cpp @@ -2666,6 +2666,10 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserv State::Instance().isRunningOnDXVK = State::Instance().isRunningOnLinux; skipGetModuleHandle = false; + // Temporary fix for Linux & DXVK + if (State::Instance().isRunningOnDXVK || State::Instance().isRunningOnLinux) + Config::Instance()->UseHQFont.set_volatile_value(false); + spdlog::info(""); CheckQuirks(); diff --git a/OptiScaler/dllmain.h b/OptiScaler/dllmain.h index 691dadd9..8acd802e 100644 --- a/OptiScaler/dllmain.h +++ b/OptiScaler/dllmain.h @@ -2427,6 +2427,10 @@ void AttachToAdapter(IUnknown* unkAdapter) { State::Instance().isRunningOnDXVK = dxvkAdapter != nullptr; ((IDXGIAdapter*)dxvkAdapter)->Release(); + + // Temporary fix for Linux & DXVK + if (State::Instance().isRunningOnDXVK || State::Instance().isRunningOnLinux) + Config::Instance()->UseHQFont.set_volatile_value(false); } if (State::Instance().isRunningOnDXVK != dxvkStatus) diff --git a/OptiScaler/hooks/HooksDx.cpp b/OptiScaler/hooks/HooksDx.cpp index 88eb4b37..874bb767 100644 --- a/OptiScaler/hooks/HooksDx.cpp +++ b/OptiScaler/hooks/HooksDx.cpp @@ -2292,6 +2292,10 @@ static void CheckAdapter(IUnknown* unkAdapter) { State::Instance().isRunningOnDXVK = dxvkAdapter != nullptr; ((IDXGIAdapter*)dxvkAdapter)->Release(); + + // Temporary fix for Linux & DXVK + if (State::Instance().isRunningOnDXVK || State::Instance().isRunningOnLinux) + Config::Instance()->UseHQFont.set_volatile_value(false); } if (adapterOk)