@ -36,10 +36,10 @@ namespace FidelityFX.FSR2
public Texture2D LanczosLut ;
public Texture2D LanczosLut ;
public Texture2D MaximumBiasLut ;
public Texture2D MaximumBiasLut ;
public RenderTexture SpdAtomicCounter ;
public RenderTexture SpdAtomicCounter ;
public RenderTexture AutoExposure ;
public RenderTexture SceneLuminance ;
public RenderTexture SceneLuminance ;
public RenderTexture AutoReactive ;
public RenderTexture AutoReactive ;
public RenderTexture AutoComposition ;
public RenderTexture AutoComposition ;
public readonly RenderTexture [ ] AutoExposure = new RenderTexture [ 2 ] ;
public readonly RenderTexture [ ] DilatedMotionVectors = new RenderTexture [ 2 ] ;
public readonly RenderTexture [ ] DilatedMotionVectors = new RenderTexture [ 2 ] ;
public readonly RenderTexture [ ] LockStatus = new RenderTexture [ 2 ] ;
public readonly RenderTexture [ ] LockStatus = new RenderTexture [ 2 ] ;
public readonly RenderTexture [ ] InternalUpscaled = new RenderTexture [ 2 ] ;
public readonly RenderTexture [ ] InternalUpscaled = new RenderTexture [ 2 ] ;
@ -91,10 +91,6 @@ namespace FidelityFX.FSR2
SpdAtomicCounter = new RenderTexture ( 1 , 1 , 0 , GraphicsFormat . R32_UInt ) { name = "FSR2_SpdAtomicCounter" , enableRandomWrite = true } ;
SpdAtomicCounter = new RenderTexture ( 1 , 1 , 0 , GraphicsFormat . R32_UInt ) { name = "FSR2_SpdAtomicCounter" , enableRandomWrite = true } ;
SpdAtomicCounter . Create ( ) ;
SpdAtomicCounter . Create ( ) ;
// Resource FSR2_AutoExposure: FFX_RESOURCE_USAGE_UAV, FFX_SURFACE_FORMAT_R32G32_FLOAT, FFX_RESOURCE_FLAGS_NONE
AutoExposure = new RenderTexture ( 1 , 1 , 0 , GraphicsFormat . R32G32_SFloat ) { name = "FSR2_AutoExposure" , enableRandomWrite = true } ;
AutoExposure . Create ( ) ;
// Resource FSR2_ExposureMips: FFX_RESOURCE_USAGE_UAV, FFX_SURFACE_FORMAT_R16_FLOAT, FFX_RESOURCE_FLAGS_ALIASABLE
// Resource FSR2_ExposureMips: FFX_RESOURCE_USAGE_UAV, FFX_SURFACE_FORMAT_R16_FLOAT, FFX_RESOURCE_FLAGS_ALIASABLE
// This is a rather special case: it's an aliasable resource, but because we require a mipmap chain and bind specific mip levels per shader, we can't easily use temporary RTs for this.
// This is a rather special case: it's an aliasable resource, but because we require a mipmap chain and bind specific mip levels per shader, we can't easily use temporary RTs for this.
int w = contextDescription . MaxRenderSize . x / 2 , h = contextDescription . MaxRenderSize . y / 2 ;
int w = contextDescription . MaxRenderSize . x / 2 , h = contextDescription . MaxRenderSize . y / 2 ;
@ -102,6 +98,9 @@ namespace FidelityFX.FSR2
SceneLuminance = new RenderTexture ( w , h , 0 , GraphicsFormat . R16_SFloat , mipCount ) { name = "FSR2_ExposureMips" , enableRandomWrite = true , useMipMap = true , autoGenerateMips = false } ;
SceneLuminance = new RenderTexture ( w , h , 0 , GraphicsFormat . R16_SFloat , mipCount ) { name = "FSR2_ExposureMips" , enableRandomWrite = true , useMipMap = true , autoGenerateMips = false } ;
SceneLuminance . Create ( ) ;
SceneLuminance . Create ( ) ;
// Resource FSR2_AutoExposure: FFX_RESOURCE_USAGE_UAV, FFX_SURFACE_FORMAT_R32G32_FLOAT, FFX_RESOURCE_FLAGS_NONE
CreateDoubleBufferedResource ( AutoExposure , "FSR2_AutoExposure" , Vector2Int . one , GraphicsFormat . R32G32_SFloat ) ;
// Resources FSR2_InternalDilatedVelocity1/2: FFX_RESOURCE_USAGE_RENDERTARGET | FFX_RESOURCE_USAGE_UAV, FFX_SURFACE_FORMAT_R16G16_FLOAT, FFX_RESOURCE_FLAGS_NONE
// Resources FSR2_InternalDilatedVelocity1/2: FFX_RESOURCE_USAGE_RENDERTARGET | FFX_RESOURCE_USAGE_UAV, FFX_SURFACE_FORMAT_R16G16_FLOAT, FFX_RESOURCE_FLAGS_NONE
CreateDoubleBufferedResource ( DilatedMotionVectors , "FSR2_InternalDilatedVelocity" , contextDescription . MaxRenderSize , GraphicsFormat . R16G16_SFloat ) ;
CreateDoubleBufferedResource ( DilatedMotionVectors , "FSR2_InternalDilatedVelocity" , contextDescription . MaxRenderSize , GraphicsFormat . R16G16_SFloat ) ;
@ -186,8 +185,8 @@ namespace FidelityFX.FSR2
DestroyResource ( InternalUpscaled ) ;
DestroyResource ( InternalUpscaled ) ;
DestroyResource ( LockStatus ) ;
DestroyResource ( LockStatus ) ;
DestroyResource ( DilatedMotionVectors ) ;
DestroyResource ( DilatedMotionVectors ) ;
DestroyResource ( AutoExposure ) ;
DestroyResource ( ref SceneLuminance ) ;
DestroyResource ( ref SceneLuminance ) ;
DestroyResource ( ref AutoExposure ) ;
DestroyResource ( ref DefaultReactive ) ;
DestroyResource ( ref DefaultReactive ) ;
DestroyResource ( ref DefaultExposure ) ;
DestroyResource ( ref DefaultExposure ) ;
DestroyResource ( ref MaximumBiasLut ) ;
DestroyResource ( ref MaximumBiasLut ) ;