NVIDIA DLSS#
EmbodiChain exposes the core NVIDIA DLSS controls through
DLSSCfg and passes them to DexSim when the
SimulationManager creates its world.
The integration applies to the hybrid, fast-rt, and rt renderers. DexSim
owns DLSS feature detection, initialization, temporal history, and fallback;
constructing a configuration object does not by itself initialize DLSS.
Processing model#
DexSim manages Ray Reconstruction (RR) for the public dlss path. The public
nrd path is configured separately through RenderCfg.nrd and maps to
standalone NRD RELAX.
EmbodiChain configuration#
The following fields are available under RenderCfg.dlss:
Parameter |
Default |
Description |
|---|---|---|
|
|
Quality preset: |
|
|
Optional internal dimensions for FastRT/OfflineRT windows. Zero derives the dimensions from the quality preset. |
|
|
Compatibility fields. Set the actual output size on the window or camera instead. |
|
|
Optional FastRT/OfflineRT ratio used to derive unset internal dimensions. |
|
|
Positive exposure multiplier used by the RR bridge. |
|
||
single tiled atlas. Atlas gutter and dimension limits remain owned by DexSim |
||
and use its native defaults. |
Quality and resolution#
The quality preset determines the internal render resolution relative to the requested output:
Value |
Mode |
Approximate internal size |
|---|---|---|
|
Auto |
Balanced-safe scale followed by NGX mode selection |
|
Ultra Performance |
33% of output |
|
Performance |
50% of output |
|
Balanced |
58% of output |
|
Quality |
67% of output |
|
Ultra Quality |
77% of output |
|
DLAA |
100% of output |
Set the window output size with SimulationManagerCfg.width and
SimulationManagerCfg.height, or set the output resolution in the camera
configuration. FastRT/OfflineRT windows may additionally use explicit
render_width/render_height values or upsample_ratio. Hybrid and offscreen
targets derive their internal resolution from the target output and quality
preset.
Examples#
Configure DLSS quality in a headless simulation:
from embodichain.lab.sim import SimulationManagerCfg
from embodichain.lab.sim.cfg import DenoisingCfg, DLSSCfg, RenderCfg
sim_config = SimulationManagerCfg(
headless=True,
render_cfg=RenderCfg(
renderer="hybrid",
denoising=DenoisingCfg(window="dlss", offscreen="dlss"),
dlss=DLSSCfg(
dlss_quality=3,
),
),
)
Configure an OfflineRT window with an explicit internal resolution:
sim_config = SimulationManagerCfg(
width=1920,
height=1080,
render_cfg=RenderCfg(
renderer="rt",
dlss=DLSSCfg(render_width=1280, render_height=720),
),
)
The same settings are available in task JSON/YAML under render_cfg.denoising
and render_cfg.dlss (decoded into the corresponding nested config objects).
Use denoising.window: off or denoising.offscreen: off to select the raw
ray-traced path for a scope.
Availability and fallback#
DLSS requires a Vulkan render device, a compatible NVIDIA GPU and driver, and a DexSim build that includes the NGX runtime libraries. DexSim checks support during renderer startup. If DLSS is unavailable, it falls back to the OptiX denoiser and reports initialization or fallback in the engine log.
For offscreen rendering, each enabled camera group may allocate temporal history and Vulkan exchange resources. Increasing the number or resolution of camera groups therefore increases GPU memory usage. Validate DLSS by rendering an eligible frame and checking the engine log; configuration conversion or world construction alone is not sufficient evidence that DLSS initialized.