Browse Source

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.

fsr2
Nico de Poel 3 years ago
parent
commit
fe10480628
  1. 14
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs
  2. 12
      Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs

14
Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/Effects/SuperResolution.cs

@ -110,7 +110,6 @@ namespace UnityEngine.Rendering.PostProcessing
private bool _resetHistory; private bool _resetHistory;
private IFsr2Callbacks _callbacks; private IFsr2Callbacks _callbacks;
private float _appliedBiasOffset;
private readonly Fsr2.DispatchDescription _dispatchDescription = new Fsr2.DispatchDescription(); private readonly Fsr2.DispatchDescription _dispatchDescription = new Fsr2.DispatchDescription();
private readonly Fsr2.GenerateReactiveDescription _genReactiveDescription = new Fsr2.GenerateReactiveDescription(); private readonly Fsr2.GenerateReactiveDescription _genReactiveDescription = new Fsr2.GenerateReactiveDescription();
@ -223,11 +222,6 @@ namespace UnityEngine.Rendering.PostProcessing
if (!float.IsNaN(biasOffset) && !float.IsInfinity(biasOffset)) if (!float.IsNaN(biasOffset) && !float.IsInfinity(biasOffset))
{ {
_callbacks.ApplyMipmapBias(biasOffset); _callbacks.ApplyMipmapBias(biasOffset);
_appliedBiasOffset = biasOffset;
}
else
{
_appliedBiasOffset = 0f;
} }
} }
@ -239,11 +233,11 @@ namespace UnityEngine.Rendering.PostProcessing
_fsrContext = null; _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;
} }
} }

12
Packages/com.unity.postprocessing@3.2.2/PostProcessing/Runtime/FSR2/Fsr2Callbacks.cs

@ -43,7 +43,7 @@ namespace FidelityFX
/// </summary> /// </summary>
void ApplyMipmapBias(float biasOffset); void ApplyMipmapBias(float biasOffset);
void UndoMipmapBias(float biasOffset);
void UndoMipmapBias();
} }
/// <summary> /// <summary>
@ -76,6 +76,9 @@ namespace FidelityFX
public virtual void ApplyMipmapBias(float biasOffset) public virtual void ApplyMipmapBias(float biasOffset)
{ {
if (float.IsNaN(biasOffset) || float.IsInfinity(biasOffset))
return;
CurrentBiasOffset += biasOffset; CurrentBiasOffset += biasOffset;
if (Mathf.Approximately(CurrentBiasOffset, 0f)) 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);
} }
} }
} }
Loading…
Cancel
Save