Foundation
Loading...
Searching...
No Matches
Public Attributes | List of all members
Foundation::RenderCore::RendererDesc Struct Reference

Parameters for Renderer creation. More...

#include <Renderer.hpp>

Public Attributes

bool asyncCompute {true}
 Enable Async Compute support.
 
bool present {true}
 Enable presentation support.
 
uint32_t threadCount {std::max(1u, std::thread::hardware_concurrency() - 1)}
 Number of worker threads to use for recording command lists.
 
RHIPipelineStateCachepipelineCache {nullptr}
 Optional PSO cache to potentially speed up pipeline state recompilation in Setup time.
 
bool profilePasses {true}
 Enable or disable GPU profiling for the frame graph execution.
 

Detailed Description

Parameters for Renderer creation.

Member Data Documentation

◆ asyncCompute

bool Foundation::RenderCore::RendererDesc::asyncCompute {true}

Enable Async Compute support.

Note
This requires the underlying RHI device to support an async compute queue, and the Renderer having passes that's scheduled on the compute queue. (see createPass).
Expect fallback to single-queue operation if this is not the case, and potential performance regression if your render graph doesn't have enough compute work to balance out the synchronization overhead, or your scheduling is not optimal, e.g. overlapping bandwidth/ALU bound Graphics/Compute work together (see createPassPriority).
Always examine the generated execution groups (see DbgDumpExecutionGroups) and PROFILE to verify that your render graph is scheduled as expected.

◆ pipelineCache

RHIPipelineStateCache* Foundation::RenderCore::RendererDesc::pipelineCache {nullptr}

Optional PSO cache to potentially speed up pipeline state recompilation in Setup time.

◆ present

bool Foundation::RenderCore::RendererDesc::present {true}

Enable presentation support.

Note
Enabling this implies a valid RHISwapchain handle is provided to the Renderer on creation (see Renderer::Renderer), otherwise an exception is thrown.

◆ profilePasses

bool Foundation::RenderCore::RendererDesc::profilePasses {true}

Enable or disable GPU profiling for the frame graph execution.

Note
When enabled, each pass will be wrapped in GPU timestamp queries, and the results can be retrieved via DbgGetPassProfiles().
This may introduce some overhead, especially with a large number of passes. And may not be supported by all platforms.

◆ threadCount

uint32_t Foundation::RenderCore::RendererDesc::threadCount {std::max(1u, std::thread::hardware_concurrency() - 1)}

Number of worker threads to use for recording command lists.

Note
Set this to 0 to disable multithreaded command recording.

The documentation for this struct was generated from the following file: