diff --git a/Assets/Scripts/Core/Fsr2Callbacks.cs b/Assets/Scripts/Core/Fsr2Callbacks.cs
index c3c06e1..ad41d98 100644
--- a/Assets/Scripts/Core/Fsr2Callbacks.cs
+++ b/Assets/Scripts/Core/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);
}
}
}
diff --git a/Assets/Scripts/Fsr2ImageEffect.cs b/Assets/Scripts/Fsr2ImageEffect.cs
index 4475ebd..7daeb60 100644
--- a/Assets/Scripts/Fsr2ImageEffect.cs
+++ b/Assets/Scripts/Fsr2ImageEffect.cs
@@ -105,7 +105,6 @@ namespace FidelityFX
private Fsr2Context _context;
private Vector2Int _maxRenderSize;
private Vector2Int _displaySize;
- private float _appliedBiasOffset;
private bool _resetHistory;
private readonly Fsr2.DispatchDescription _dispatchDescription = new Fsr2.DispatchDescription();
@@ -238,22 +237,13 @@ namespace FidelityFX
if (!float.IsNaN(biasOffset) && !float.IsInfinity(biasOffset))
{
Callbacks.ApplyMipmapBias(biasOffset);
- _appliedBiasOffset = biasOffset;
- }
- else
- {
- _appliedBiasOffset = 0f;
}
}
private void UndoMipmapBias()
{
// Undo the current mipmap bias offset
- if (_appliedBiasOffset != 0f && !float.IsNaN(_appliedBiasOffset) && !float.IsInfinity(_appliedBiasOffset))
- {
- Callbacks.UndoMipmapBias(_appliedBiasOffset);
- _appliedBiasOffset = 0f;
- }
+ Callbacks.UndoMipmapBias();
}
private void Update()
diff --git a/com.unity.postprocessing/PostProcessing/Runtime/Effects/SuperResolution.cs b/com.unity.postprocessing/PostProcessing/Runtime/Effects/SuperResolution.cs
index a053cc7..1de3b14 100644
--- a/com.unity.postprocessing/PostProcessing/Runtime/Effects/SuperResolution.cs
+++ b/com.unity.postprocessing/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/com.unity.postprocessing/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs b/com.unity.postprocessing/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs
index c3c06e1..ad41d98 100644
--- a/com.unity.postprocessing/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs
+++ b/com.unity.postprocessing/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);
}
}
}