@ -103,7 +103,7 @@ namespace FidelityFX
public RenderTexture outputMotionVectors ;
private Fsr2Context _context ;
private Vector2Int _r enderSize ;
private Vector2Int _maxR enderSize ;
private Vector2Int _displaySize ;
private float _appliedBiasOffset ;
private bool _resetHistory ;
@ -139,8 +139,8 @@ namespace FidelityFX
// Determine the desired rendering and display resolutions
_displaySize = GetDisplaySize ( ) ;
Fsr2 . GetRenderResolutionFromQualityMode ( out var r enderWidth, out var r enderHeight, _displaySize . x , _displaySize . y , qualityMode ) ;
_r enderSize = new Vector2Int ( renderWidth , r enderHeight) ;
Fsr2 . GetRenderResolutionFromQualityMode ( out var maxR enderWidth, out var maxR enderHeight, _displaySize . x , _displaySize . y , qualityMode ) ;
_maxR enderSize = new Vector2Int ( maxRenderWidth , maxR enderHeight) ;
if ( ! SystemInfo . supportsComputeShaders )
{
@ -149,9 +149,9 @@ namespace FidelityFX
return ;
}
if ( _r enderSize . x = = 0 | | _r enderSize . y = = 0 )
if ( _maxR enderSize . x = = 0 | | _maxR enderSize . y = = 0 )
{
Debug . LogError ( $"FSR2 render size is invalid: {_renderSize.x}x{_r enderSize.y}. Please check your screen resolution and camera viewport parameters." ) ;
Debug . LogError ( $"FSR2 render size is invalid: {_maxRenderSize.x}x{_maxR enderSize.y}. Please check your screen resolution and camera viewport parameters." ) ;
enabled = false ;
return ;
}
@ -188,7 +188,7 @@ namespace FidelityFX
if ( enableAutoExposure ) flags | = Fsr2 . InitializationFlags . EnableAutoExposure ;
if ( UsingDynamicResolution ( ) ) flags | = Fsr2 . InitializationFlags . EnableDynamicResolution ;
_context = Fsr2 . CreateContext ( _displaySize , _r enderSize , Callbacks , flags ) ;
_context = Fsr2 . CreateContext ( _displaySize , _maxR enderSize , Callbacks , flags ) ;
_prevDisplaySize = _displaySize ;
_prevQualityMode = qualityMode ;
@ -234,7 +234,7 @@ namespace FidelityFX
private void ApplyMipmapBias ( )
{
// Apply a mipmap bias so that textures retain their sharpness
float biasOffset = Fsr2 . GetMipmapBiasOffset ( _r enderSize . x , _displaySize . x ) ;
float biasOffset = Fsr2 . GetMipmapBiasOffset ( _maxR enderSize . x , _displaySize . x ) ;
if ( ! float . IsNaN ( biasOffset ) & & ! float . IsInfinity ( biasOffset ) )
{
Callbacks . ApplyMipmapBias ( biasOffset ) ;
@ -286,7 +286,7 @@ namespace FidelityFX
{
// Render to a smaller portion of the screen by manipulating the camera's viewport rect
_renderCamera . aspect = ( _displaySize . x * _originalRect . width ) / ( _displaySize . y * _originalRect . height ) ;
_renderCamera . rect = new Rect ( 0 , 0 , _originalRect . width * _r enderSize . x / _renderCamera . pixelWidth , _originalRect . height * _r enderSize . y / _renderCamera . pixelHeight ) ;
_renderCamera . rect = new Rect ( 0 , 0 , _originalRect . width * _maxR enderSize . x / _renderCamera . pixelWidth , _originalRect . height * _maxR enderSize . y / _renderCamera . pixelHeight ) ;
}
// Set up the opaque-only command buffer to make a copy of the camera color buffer right before transparent drawing starts
@ -472,9 +472,9 @@ namespace FidelityFX
private Vector2Int GetScaledRenderSize ( )
{
if ( UsingDynamicResolution ( ) )
return new Vector2Int ( Mathf . CeilToInt ( _r enderSize . x * ScalableBufferManager . widthScaleFactor ) , Mathf . CeilToInt ( _r enderSize . y * ScalableBufferManager . heightScaleFactor ) ) ;
return new Vector2Int ( Mathf . CeilToInt ( _maxR enderSize . x * ScalableBufferManager . widthScaleFactor ) , Mathf . CeilToInt ( _maxR enderSize . y * ScalableBufferManager . heightScaleFactor ) ) ;
return _r enderSize ;
return _maxR enderSize ;
}
}
}