@ -36,8 +36,8 @@ namespace ArmASR
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 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 ] ;
@ -90,10 +90,6 @@ namespace ArmASR
SpdAtomicCounter = new RenderTexture ( 1 , 1 , 0 , GraphicsFormat . R32_UInt ) { name = "ASR_SpdAtomicCounter" , enableRandomWrite = true } ;
SpdAtomicCounter = new RenderTexture ( 1 , 1 , 0 , GraphicsFormat . R32_UInt ) { name = "ASR_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 , rg16Format ) { name = "ASR_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 ;
@ -101,6 +97,9 @@ namespace ArmASR
SceneLuminance = new RenderTexture ( w , h , 0 , r16Format , mipCount ) { name = "ASR_ExposureMips" , enableRandomWrite = true , useMipMap = true , autoGenerateMips = false } ;
SceneLuminance = new RenderTexture ( w , h , 0 , r16Format , mipCount ) { name = "ASR_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 , "ASR_AutoExposure" , Vector2Int . one , rg16Format ) ;
// 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 , "ASR_InternalDilatedVelocity" , contextDescription . MaxRenderSize , GraphicsFormat . R16G16_SFloat ) ;
CreateDoubleBufferedResource ( DilatedMotionVectors , "ASR_InternalDilatedVelocity" , contextDescription . MaxRenderSize , GraphicsFormat . R16G16_SFloat ) ;
@ -194,8 +193,8 @@ namespace ArmASR
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 ) ;