From e20c6c47acecbb88c5c3fbd3e55223a1be8bebef Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Tue, 27 Jan 2026 15:02:31 +0100 Subject: [PATCH] DX12 interface V8 experiments --- .gitignore | 2 ++ src/FSR3UnityPlugin.cpp | 5 ++++- src/FSR3Upscaler_DX12.h | 6 ++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 652e763..f2487f8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ .vs/ FSR3UnityPlugin/x64/ x64/ +FSR3UnityPlugin/Debug/ +FSR3UnityPlugin/Release/ diff --git a/src/FSR3UnityPlugin.cpp b/src/FSR3UnityPlugin.cpp index de7698c..dbca493 100644 --- a/src/FSR3UnityPlugin.cpp +++ b/src/FSR3UnityPlugin.cpp @@ -79,7 +79,10 @@ static void UNITY_INTERFACE_API OnGraphicsDeviceEvent(UnityGfxDeviceEventType ev return; } - s_Upscaler = new FSR3Upscaler_DX12(s_Log, graphicsD3D12); + // Older Unity versions won't have this interface yet, so its presence is optional + auto* graphicsD3D12v8 = s_UnityInterfaces->Get(); + + s_Upscaler = new FSR3Upscaler_DX12(s_Log, graphicsD3D12, graphicsD3D12v8); UnityD3D12PluginEventConfig eventConfig{}; eventConfig.graphicsQueueAccess = kUnityD3D12GraphicsQueueAccess_DontCare; diff --git a/src/FSR3Upscaler_DX12.h b/src/FSR3Upscaler_DX12.h index 7d43662..b6f3176 100644 --- a/src/FSR3Upscaler_DX12.h +++ b/src/FSR3Upscaler_DX12.h @@ -10,9 +10,10 @@ class FSR3Upscaler_DX12 : public FSR3Upscaler_FFXBase { public: - FSR3Upscaler_DX12(IUnityLog* log, IUnityGraphicsD3D12v7* graphicsDevice): + FSR3Upscaler_DX12(IUnityLog* log, IUnityGraphicsD3D12v7* graphicsDevice, IUnityGraphicsD3D12v8* graphicsDeviceV8): FSR3Upscaler_FFXBase(log), - m_GraphicsDevice(graphicsDevice), m_DX12BackendDesc(), m_FrameFenceEventHandle(nullptr) + m_GraphicsDevice(graphicsDevice), m_GraphicsDeviceV8(graphicsDeviceV8), + m_DX12BackendDesc(), m_FrameFenceEventHandle(nullptr) { } @@ -28,6 +29,7 @@ protected: private: IUnityGraphicsD3D12v7* m_GraphicsDevice; + IUnityGraphicsD3D12v8* m_GraphicsDeviceV8; ffx::CreateBackendDX12Desc m_DX12BackendDesc; HANDLE m_FrameFenceEventHandle; };