fix: skip FSR3 frame gen on non-AMD GPUs to prevent NVIDIA driver crash

The AMD FidelityFX FSR3 runtime corrupts Vulkan driver state when
context creation fails on NVIDIA GPUs, causing vkCmdBeginRenderPass
to SIGSEGV inside libnvidia-glcore. Gate FSR3 frame gen initialization
behind isAmdGpu() check — FSR2 upscaling still works on all GPUs.
This commit is contained in:
Kelsi 2026-03-24 10:11:21 -07:00
parent ceb8006c3d
commit 4fcb92dfdc

View file

@ -4392,7 +4392,11 @@ bool Renderer::initFSR2Resources() {
fsr2_.useAmdBackend = true;
LOG_INFO("FSR2 AMD: context created successfully.");
#if WOWEE_HAS_AMD_FSR3_FRAMEGEN
if (fsr2_.amdFsr3FramegenEnabled) {
// FSR3 frame generation runtime uses AMD FidelityFX SDK which can
// corrupt Vulkan driver state on NVIDIA GPUs when context creation
// fails, causing subsequent vkCmdBeginRenderPass to crash.
// Skip FSR3 frame gen entirely on non-AMD GPUs.
if (fsr2_.amdFsr3FramegenEnabled && vkCtx->isAmdGpu()) {
fsr2_.amdFsr3FramegenRuntimeActive = false;
if (!fsr2_.amdFsr3Runtime) fsr2_.amdFsr3Runtime = std::make_unique<AmdFsr3Runtime>();
AmdFsr3RuntimeInitDesc fgInit{};