From fe104806280524bf3a1562933d95ad23ca272d49 Mon Sep 17 00:00:00 2001 From: Nico de Poel Date: Wed, 5 Jul 2023 12:55:53 +0200 Subject: [PATCH] Refactored undo mipmap bias callback such that the RP integration does not need to maintain any bias offset state. Added NaN/Infinity check to the standard apply mipmap bias callback implementation. --- .../Runtime/Effects/SuperResolution.cs | 14 ++++---------- .../PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs | 12 +++++++++--- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs index a053cc7..1de3b14 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs @@ -110,7 +110,6 @@ namespace UnityEngine.Rendering.PostProcessing private bool _resetHistory; private IFsr2Callbacks _callbacks; - private float _appliedBiasOffset; private readonly Fsr2.DispatchDescription _dispatchDescription = new Fsr2.DispatchDescription(); private readonly Fsr2.GenerateReactiveDescription _genReactiveDescription = new Fsr2.GenerateReactiveDescription(); @@ -223,11 +222,6 @@ namespace UnityEngine.Rendering.PostProcessing if (!float.IsNaN(biasOffset) && !float.IsInfinity(biasOffset)) { _callbacks.ApplyMipmapBias(biasOffset); - _appliedBiasOffset = biasOffset; - } - else - { - _appliedBiasOffset = 0f; } } @@ -239,11 +233,11 @@ namespace UnityEngine.Rendering.PostProcessing _fsrContext = null; } - // Undo the current mipmap bias offset - if (_appliedBiasOffset != 0f && !float.IsNaN(_appliedBiasOffset) && !float.IsInfinity(_appliedBiasOffset)) + if (_callbacks != null) { - _callbacks.UndoMipmapBias(_appliedBiasOffset); - _appliedBiasOffset = 0f; + // Undo the current mipmap bias offset + _callbacks.UndoMipmapBias(); + _callbacks = null; } } diff --git a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs index c3c06e1..ad41d98 100644 --- a/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs +++ b/Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs @@ -43,7 +43,7 @@ namespace FidelityFX /// void ApplyMipmapBias(float biasOffset); - void UndoMipmapBias(float biasOffset); + void UndoMipmapBias(); } /// @@ -76,6 +76,9 @@ namespace FidelityFX public virtual void ApplyMipmapBias(float biasOffset) { + if (float.IsNaN(biasOffset) || float.IsInfinity(biasOffset)) + return; + CurrentBiasOffset += biasOffset; if (Mathf.Approximately(CurrentBiasOffset, 0f)) @@ -92,9 +95,12 @@ namespace FidelityFX } } - public virtual void UndoMipmapBias(float biasOffset) + public virtual void UndoMipmapBias() { - ApplyMipmapBias(-biasOffset); + if (CurrentBiasOffset == 0f) + return; + + ApplyMipmapBias(-CurrentBiasOffset); } } }