Lysa  0.0
Lysa 3D Engine
FrameScalingPass Class Reference

Detailed Description

Post-processing pass that upscales the rendered frame to the output resolution. Supports bilinear upscaling and AMD FidelityFX Super Resolution 1.0 (FSR EASU).

+ Inheritance diagram for FrameScalingPass:

Public Member Functions

 FrameScalingPass (const RendererConfiguration &config, const vireo::ImageFormat outputFormat)
 
void resize (const vireo::Extent &extent, const std::shared_ptr< vireo::CommandList > &commandList) override
 
- Public Member Functions inherited from PostProcessingCompute
 PostProcessingCompute (const RendererConfiguration &config, vireo::ImageFormat outputFormat, const std::string &compShaderName, void *data=nullptr, uint32 dataSize=0, const std::string &name="")
 
void update (uint32 frameIndex) override
 
virtual void render (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::Image > &colorAttachment, uint32 frameIndex)
 
virtual void render (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::Image > &colorAttachment, const std::shared_ptr< vireo::Image > &depthAttachment, uint32 frameIndex)
 
virtual void render (const std::shared_ptr< vireo::CommandList > &commandList, const SceneFrameData &scene, const std::shared_ptr< vireo::Image > &depthAttachment, uint32 frameIndex)
 
std::shared_ptr< vireo::Image > getColorAttachment (const uint32 frameIndex) const
 
std::shared_ptr< vireo::RenderTarget > getColorRenderTarget (const uint32 frameIndex)
 
virtual vireo::ImageFormat getColorAttachmentFormat () const
 
const auto & getCompShaderName () const
 
- Public Member Functions inherited from Renderpass
 Renderpass (const RendererConfiguration &config, const std::string &name)
 
virtual ~Renderpass () = default
 
 Renderpass (Renderpass &) = delete
 
Renderpass & operator= (Renderpass &) = delete
 

Additional Inherited Members

- Static Public Member Functions inherited from Renderpass
static void destroyShaderModules ()
 
- Static Public Attributes inherited from PostProcessingCompute
static constexpr vireo::DescriptorIndex BINDING_PARAMS {0}
 
static constexpr vireo::DescriptorIndex BINDING_DATA {1}
 
static constexpr vireo::DescriptorIndex BINDING_OUTPUT {2}
 
static constexpr vireo::DescriptorIndex BINDING_TEXTURES {3}
 
static constexpr int INPUT_BUFFER {0}
 
static constexpr int DEPTH_BUFFER {1}
 
static constexpr int BLOOM_BUFFER {2}
 
static constexpr int OPT1_BUFFER {3}
 
static constexpr int OPT2_BUFFER {4}
 
static constexpr int TEXTURES_COUNT {OPT2_BUFFER + 1}
 
static constexpr uint32 TILE_SIZE {16}
 
- Protected Member Functions inherited from PostProcessingCompute
virtual void render (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::Image > &colorAttachment, const std::shared_ptr< vireo::Image > &depthAttachment, const std::shared_ptr< vireo::Image > &bloomColorAttachment, uint32 frameIndex)
 
- Protected Member Functions inherited from Renderpass
std::shared_ptr< vireo::ShaderModule > loadShader (const std::string &shaderName) const
 
void init (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, const std::shared_ptr< vireo::DescriptorLayout > &descriptorLayout, bool withStencil)
 
void init (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, bool withStencil) const
 
void initForScene (vireo::GraphicPipelineConfiguration &pipelineConfig, vireo::RenderingConfiguration &renderingConfig, bool withStencil) const
 
void initRendering (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::GraphicPipeline > &pipeline, const std::shared_ptr< vireo::DescriptorSet > &sceneDescriptorSet, const std::shared_ptr< vireo::DescriptorSet > &descriptorSet)
 
void initCompute (const std::shared_ptr< vireo::CommandList > &commandList, const std::shared_ptr< vireo::ComputePipeline > &pipeline, const std::shared_ptr< vireo::DescriptorSet > &sceneDescriptorSet, const std::shared_ptr< vireo::DescriptorSet > &descriptorSet)
 
- Protected Attributes inherited from PostProcessingCompute
const vireo::ImageFormat outputFormat
 
const std::string compShaderName
 
uint8 dummyData {0}
 
void * data {nullptr}
 
std::vector< FrameDataframesData
 
std::vector< std::shared_ptr< vireo::Image > > textures
 
std::shared_ptr< vireo::DescriptorLayout > descriptorLayout
 
std::shared_ptr< vireo::Pipeline > pipeline
 
- Protected Attributes inherited from Renderpass
const std::string name
 
const RendererConfigurationconfig
 
- Static Protected Attributes inherited from Renderpass
static std::mutex shaderModulesMutex
 
static std::unordered_map< std::string, std::shared_ptr< vireo::ShaderModule > > shaderModules
 

Constructor & Destructor Documentation

FrameScalingPass ( const RendererConfiguration config,
const vireo::ImageFormat  outputFormat 
)
inline

Constructs the pass and selects the upscaling algorithm from the renderer configuration.

Parameters
configRenderer configuration (includes FrameScalingType and render resolution).
outputFormatPixel format of the output surface.

Member Function Documentation

void resize ( const vireo::Extent &  extent,
const std::shared_ptr< vireo::CommandList > &  commandList 
)
inlineoverridevirtual

Recomputes FSR constants when the output extent changes.

Parameters
extentNew output resolution in pixels.

Reimplemented from lysa::PostProcessingCompute::resize()