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 exposure.

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 composite 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.

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).
FlagTwoDepthTextures(1 << 21)Two depth textures (for rendering ping-ping).
FlagTwoNormalTextures(1 << 22)Two normal surfaces (for compute ping-pong).
FlagTwoDiffuseTextures(1 << 23)Two diffuse surfaces (for compute ping-pong).
FlagTwoMetallicTextures(1 << 24)Two metallic surfaces (for compute ping-pong).
FlagTwoAuxiliaryTextures(1 << 25)Two auxiliary surfaces (for compute ping-pong).
FlagTwoMotionTextures(1 << 26)Two motion surfaces (for compute ping-pong).
FlagSurfaceTextures(1 << 27)Create surface textures (for compute processing).
FlagCompositeInterop(1 << 28)Enable composite surfaces interop.
FlagCompositeTonemap(1 << 29)Perform composite surface tonemap.
FlagCompositeTemporal(1 << 30)Create composite temporal surfaces.
FlagMultisample(FlagMultisample2 | FlagMultisample4 | FlagMultisample8)
DefaultFlagsFlagNone
NumFlags31

SamplerType

Sampler types.

NameValueDescription
SamplerPointClamp0Point clamp sampler.
SamplerPointRepeat1Point repeat sampler.
SamplerPointCompare2Point compare sampler.
SamplerBipointClamp3Bipoint clamp sampler.
SamplerLinearClamp4Linear clamp sampler.
SamplerLinearRepeat5Linear repeat sampler.
SamplerLinearCompare6Linear compare sampler.
SamplerBilinearClamp7Bilinear clamp sampler.
SamplerBilinearRepeat8Bilinear repeat sampler.
SamplerTrilinearClamp9Trilinear clamp sampler.
SamplerTrilinearRepeat10Trilinear repeat sampler.
NumSamplers11

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.
NumQueries26