Skip to main content

RenderRenderer

The RenderRenderer class provides an interface to low-level rendering methods. It supports parallel rendering operations for significantly improved performance in multi-frame rendering configurations.

#include <render/TellusimRenderRenderer.h>

Constructors

RenderRenderer()

Methods

Renderer flags.

Flags getFlags() const
bool hasFlag(Flags flags) const
bool hasFlags(Flags flags) const
String getFlagsName() const

Renderer multisample.

uint32_t getMultisample() const
bool hasMultisample() const

Renderer flipped flag.

bool isTargetFlipped() const

Renderer deferred formats.

Format getDepthFormat() const
Format getColorFormat() const
Format getNormalFormat() const
Format getDiffuseFormat() const
Format getMetallicFormat() const
Format getAuxiliaryFormat() const
Format getMotionFormat() const

Renderer composite formats.

Format getLuminanceFormat() const
Format getCompositeFormat() const
Format getHistoryFormat() const

Renderer occluder format.

Format getOccluderFormat() const

Renderer shadow map format.

Format getShadowMapFormat() const

Scene render interface.

SceneRender getSceneRender()

Renderer noise texture.

Texture getNoiseTexture() const

Renderer samplers.

Sampler getSampler(SamplerType type) const

Renderer queries.

Query getQuery(QueryType type) const
static const char *getQueryName(QueryType type)

Renderer statistics queries.

Query getStatisticsQuery(Pass pass) const

Dispatch frame commands generation.

bool dispatchFrames(Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchFrame(Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Draw deferred geometries.

bool drawDeferred(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool drawDeferred(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Draw forward geometries.

bool drawForward(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool drawForward(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Draw transparent geometries.

bool drawTransparent(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool drawTransparent(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Raster deferred geometries.

bool rasterDeferred(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool rasterDeferred(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch shadow map commands generation.

bool dispatchShadowMap(Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchShadowMap(Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Draw shadow map geometries.

bool drawShadowMap(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool drawShadowMap(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Raster shadow map geometries.

bool rasterShadowMap(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool rasterShadowMap(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch tracing instances generation.

bool dispatchTracing(Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchTracing(Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Build tracing instances.

bool buildTracing(const Device &device, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool buildTracing(const Device &device, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Trace deferred geometries.

bool traceDeferred(const Device &device, RenderFrame *frames, uint32_t num_frames, uint32_t mask, Flags flags = FlagNone)
bool traceDeferred(const Device &device, RenderFrame &frame, uint32_t mask, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.
uint32_tmaskGeometry tracing mask.

Dispatch screen creation.

bool dispatchScreen(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchScreen(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch ambient occlusion.

bool dispatchOcclusion(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchOcclusion(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Trace ambient occlusion.

bool traceOcclusion(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, uint32_t mask, Flags flags = FlagNone)
bool traceOcclusion(const Device &device, Compute &compute, RenderFrame &frame, uint32_t mask, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.
uint32_tmaskGeometry tracing mask.

Dispatch deferred lighting.

bool dispatchLight(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchLight(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch occluder creation.

bool dispatchOccluder(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchOccluder(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch screen feedback creation.

bool dispatchFeedback(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchFeedback(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch transparent blending.

bool dispatchTransparent(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchTransparent(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch luminance texture creation.

bool dispatchLuminance(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchLuminance(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch exposure compensation (not required when using the composite pass).

bool dispatchExposure(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchExposure(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch composite texture creation.

bool dispatchComposite(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchComposite(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch bloom post-processing.

bool dispatchBloom(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchBloom(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Dispatch tone-mapping filter.

bool dispatchTonemap(const Device &device, Compute &compute, RenderFrame *frames, uint32_t num_frames, Flags flags = FlagNone)
bool dispatchTonemap(const Device &device, Compute &compute, RenderFrame &frame, Flags flags = FlagNone)
TypeNameDescription
uint32_tnum_framesNumber of frames.
RenderFrameframesRender frames.

Enums

Flags

Renderer flags.

NameValueDescription
FlagNone0
FlagQuery(1 << 0)Time query profiler.
FlagStatistics(1 << 1)Frame statistics query.
FlagPrintf(1 << 2)Create printf resources.
FlagRaster(1 << 3)Create raster resources.
FlagMeshlet(1 << 4)Create meshlet resources.
FlagTracing(1 << 5)Create tracing resources.
FlagShadowMap(1 << 6)Create shadow map resources.
FlagScreenShadows(1 << 7)Enable screen shadows.
FlagTracingShadows(1 << 8)Enable tracing shadows (requires tracing).
FlagFastOcclusion(1 << 9)Enable fast occlusion (requires occlusion flag).
FlagScreenOcclusion(1 << 10)Enable screen occlusion (creates two metallic surfaces).
FlagTracingOcclusion(1 << 11)Enable tracing occlusion (requires tracing and creates two metallic surfaces).
FlagScreenReflection(1 << 12)Enable screen reflection (creates frame reflection texture).
FlagTracingReflection(1 << 13)Enable tracing reflection (requires tracing).
FlagAntialiasing(1 << 14)Enable antialiasing (requires spatial antialiasing).
FlagMultisample2(1 << 15)Create multisample 2x antialiasing resources.
FlagMultisample4(1 << 16)Create multisample 4x antialiasing resources.
FlagMultisample8(1 << 17)Create multisample 8x antialiasing resources.
FlagStencilBuffer(1 << 18)Create stencil buffer (changes depth format).
FlagAuxiliaryBuffer(1 << 19)Create auxiliary buffer (clearcoat, anisotropy, material address).
FlagMotionBuffer(1 << 20)Create motion buffer (per-geometry motion texture).
FlagSurfaceTextures(1 << 21)Create surface texture (for compute operations).
FlagTwoDepthTextures(1 << 22)Two depth textures (for rendering ping-ping).
FlagTwoNormalTextures(1 << 23)Two normal surfaces (for compute ping-pong).
FlagTwoDiffuseTextures(1 << 24)Two diffuse surfaces (for compute ping-pong).
FlagTwoMetallicTextures(1 << 25)Two metallic surfaces (for compute ping-pong).
FlagTwoAuxiliaryTextures(1 << 26)Two auxiliary surfaces (for compute ping-pong).
FlagTwoMotionTextures(1 << 27)Two motion surfaces (for compute ping-pong).
FlagCompositeInterop(1 << 28)Enable composite surfaces interop.
FlagMultisample(FlagMultisample2 | FlagMultisample4 | FlagMultisample8)
DefaultFlagsFlagNone
NumFlags29

SamplerType

Sampler types.

NameValueDescription
SamplerPointClamp0Point clamp sampler.
SamplerPointRepeat1Point repeat sampler.
SamplerPointBorder2Point border sampler.
SamplerPointCompare3Point compare sampler.
SamplerBipointClamp4Bipoint clamp sampler.
SamplerLinearClamp5Linear clamp sampler.
SamplerLinearRepeat6Linear repeat sampler.
SamplerLinearBorder7Linear border sampler.
SamplerLinearCompare8Linear compare sampler.
SamplerBilinearClamp9Bilinear clamp sampler.
SamplerBilinearRepeat10Bilinear repeat sampler.
SamplerTrilinearClamp11Trilinear clamp sampler.
SamplerTrilinearRepeat12Trilinear repeat sampler.
NumSamplers13

QueryType

Query types.

NameValueDescription
QueryFrameCount0Frame count time.
QueryFrameBatch1Frame batch time.
QueryFrameUpdate2Frame update time.
QueryFrameShadowMap3Frame shadow map time.
QueryDrawDeferred4Draw deferred pass time.
QueryDrawForward5Draw forward pass time.
QueryDrawTransparent6Draw transparent pass time.
QueryDrawShadowMap7Draw shadow map pass time.
QueryRasterFetch8Raster fetch time.
QueryRasterCount9Raster count time.
QueryRasterGroup10Raster group time.
QueryRasterDeferred11Raster deferred time.
QueryRasterComposite12Raster composite time.
QueryRasterShadowMap13Raster shadow map time.
QueryTracingInstance14Tracing instance time.
QueryTracingBuild15Tracing build time.
QueryTraceDeferred16Trace deferred time.
QueryScreenFetch17Screen fetch time.
QueryScreenOcclusion18Screen occlusion time.
QueryTraceOcclusion19Trace occlusion time.
QueryDeferredLight20Deferred light time.
QueryOccluderFetch21Occluder fetch time.
QueryScreenFeedback22Screen feedback time.
QueryTransparentBlend23Transparent blend time.
QueryLuminanceHistogram24Luminance histogram time.
QueryCompositeFetch25Composite fetch time.
QueryBloomFilter26Bloom filter time.
QueryTonemapFilter27Tonemap filter time.
NumQueries28