From 27261303d274ad4704cb3692c1166db40bee0b84 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Mon, 9 Mar 2026 02:35:02 -0700 Subject: [PATCH] Only export bridge interop handles for dx12_bridge backend --- src/rendering/renderer.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/rendering/renderer.cpp b/src/rendering/renderer.cpp index f5ce3a28..b7e4c97e 100644 --- a/src/rendering/renderer.cpp +++ b/src/rendering/renderer.cpp @@ -4619,6 +4619,13 @@ void Renderer::dispatchAmdFsr3Framegen() { #else using ExportHandle = int; #endif + bool exportInteropHandles = false; + if (fsr2_.amdFsr3Runtime && + fsr2_.amdFsr3Runtime->loadPathKind() == AmdFsr3Runtime::LoadPathKind::Wrapper && + fsr2_.amdFsr3Runtime->wrapperBackendName() == "dx12_bridge") { + exportInteropHandles = true; + } + std::vector exportedHandles; auto trackHandle = [&](uint64_t h) { if (!h) return; @@ -4642,6 +4649,7 @@ void Renderer::dispatchAmdFsr3Framegen() { }; fgDispatch.externalFlags = 0; + if (exportInteropHandles) { #if defined(_WIN32) fgDispatch.colorMemoryHandle = exportImageMemoryHandleWin32( device, vkGetDeviceProcAddr, alloc, fsr2_.sceneColor); @@ -4726,6 +4734,7 @@ void Renderer::dispatchAmdFsr3Framegen() { fgDispatch.acquireSemaphoreValue = syncValue; fgDispatch.releaseSemaphoreValue = syncValue; fsr2_.amdFsr3InteropSyncValue = syncValue + 1; + } #endif if (!fsr2_.amdFsr3Runtime->dispatchUpscale(fgDispatch)) {