From 222b5d2e794c154490773a87814b7e308878b605 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Thu, 18 Jul 2024 15:40:56 +0200 Subject: [PATCH] Implemented resource cleanup upon domain reload --- .../RenderPass/Upscalers/UpscalerPlugin.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/UpscalerPlugin.cs b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/UpscalerPlugin.cs index 14d94b6f..ee789b36 100644 --- a/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/UpscalerPlugin.cs +++ b/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/RenderPass/Upscalers/UpscalerPlugin.cs @@ -11,9 +11,6 @@ namespace UnityEngine.Rendering.HighDefinition.AMD { new FSR2.FSR2UpscalerPlugin(), new FSR3.FSR3UpscalerPlugin(), -#if UNITY_STANDALONE_WIN && false - new FSR2Wrapper.FSR2WrapperUpscaler(), -#endif }; private static UpscalerPlugin _activePlugin = AvailablePlugins[0]; @@ -128,11 +125,25 @@ namespace UnityEngine.Rendering.HighDefinition.AMD private bool Initialize() { +#if UNITY_EDITOR + UnityEditor.AssemblyReloadEvents.beforeAssemblyReload += Shutdown; +#endif + return true; } private void Shutdown() { +#if UNITY_EDITOR + UnityEditor.AssemblyReloadEvents.beforeAssemblyReload -= Shutdown; +#endif + + foreach (FSR2Context context in _contexts) + { + context.Destroy(AMDUnityPlugin.ActivePlugin); + } + + _contexts.Clear(); } internal void RecreateFeatures(UpscalerPlugin oldPlugin, UpscalerPlugin newPlugin)