Configuration and Settings#

The Fabric Scene Delegate can be configured through various Carbonite settings. This page documents all available settings that control FSD behavior.

Many of these settings can be found in the UI, at Edit → Preferences → Rendering → Fabric Scene Delegate.

Scene Delegate Preferences#

Enable Fabric Scene Delegate#

Setting Path:

/app/useFabricSceneDelegate

Type:

Boolean

Default:

true (from Kit 109.0 and later, false in earlier versions)

Master switch to enable or disable the Fabric Scene Delegate. When disabled, the system falls back to OmniHydra.

Note

This setting is not persistent by default and needs to be re-enabled between Kit sessions. This behavior may change in future releases.

Fabric Population Settings#

These settings control how USD data is populated into Fabric. They typically control what data is read from USD into Fabric and how it is processed, or toggle heuristics that provide performance optimizations at the expense of occasionally incorrect behavior.

readCurves#

Setting Path:

/app/usdrt/population/utils/readCurves

Type:

Boolean

Default:

true

Enable or disable reading curve data from USD into Fabric.

readMaterials#

Setting Path:

/app/usdrt/population/utils/readMaterials

Type:

Boolean

Default:

true

Enable or disable reading material data from USD into Fabric.

readVolumes#

Setting Path:

/app/usdrt/population/utils/readVolumes

Type:

Boolean

Default:

true

Enable or disable reading volume data from USD into Fabric.

readLights#

Setting Path:

/app/usdrt/population/utils/readLights

Type:

Boolean

Default:

true

Enable or disable reading light data from USD into Fabric.

readPrimvars#

Setting Path:

/app/usdrt/population/utils/readPrimvars

Type:

Boolean

Default:

true

Enable or disable reading primvar (primitive variable) data from USD into Fabric.

mergeMaterials#

Setting Path:

/app/usdrt/population/utils/mergeMaterials

Type:

Boolean

Default:

false (from Kit 108 and later, true in earlier versions)

Enable material deduplication during population. When enabled, identical materials are merged to save memory and improve performance.

Note

Material merging is currently incompatible with NeurayLib materials. This will be fixed in a future release.

enableFastDiffing#

Setting Path:

/app/usdrt/population/utils/enableFastDiffing

Type:

Boolean

Default:

true

Enable optimized diffing algorithm for detecting changes in USD data. This significantly improves performance when synchronizing USD resync changes (such as toggling payloads, switching variants, adding new layers etc.) to Fabric, but may cause certain USD changes to be missed (typically changes to array data such as mesh points).

populateAllAuthoredAttributes#

Setting Path:

/app/usdrt/population/utils/populateAllAuthoredAttributes

Type:

Boolean

Default:

false

When enabled, populates all authored USD attributes into Fabric, not just the ones needed for rendering. This increases memory usage but may be useful for certain workflows.

createAllMaterials#

Setting Path:

/app/usdrt/population/utils/createAllMaterials

Type:

Boolean

Default:

false

When enabled, creates Fabric representations for all materials in the USD stage, even if they’re not currently assigned to any geometry.

enableIntermediateInstanceProxyPopulation#

Setting Path:

/app/usdrt/population/utils/enableIntermediateInstanceProxyPopulation

Type:

Boolean

Default:

false

Enable population of intermediate instance proxy prims. Disabling this feature may save a significant amount of memory.

Note

This feature affects how USD scene graph instancing is represented in Fabric.

enableRendererInstancing#

Setting Path:

/app/usdrt/population/utils/enableRendererInstancing

Type:

Boolean

Default:

false

Enable renderer-side USD scene graph instancing optimization. When enabled, scene graph instancing is performed in the renderer rather than during the Fabric population process. This may save a significant amount of memory and improve performance.

Note

This feature is currently experimental and is supported only by the RTX renderer. It affects how USD scene graph instancing is represented in Fabric.

instanceCompactTransforms#

Setting Path:

/app/usdrt/population/utils/instanceCompactTransforms

Type:

Boolean

Default:

false

Deprecated since version 108.0: This setting is deprecated from Kit 108.0 and should no longer be used.

Use compact transform representation for instances to reduce memory usage. Mutually exclusive with useMatrixForInstanceProxyTransforms.

evaluateXformsTimeSamples#

Setting Path:

/app/usdrt/population/utils/evaluateXformsTimeSamples

Type:

Boolean

Default:

false

When enabled, time-sampled transforms are fully evaluated and stored in Fabric, including intermediate xform prims. When disabled, time-sampled transforms are evaluated on-the-fly during the transform hierarchy update, which is more efficient but may not be accurate when multiple transforms are changed at once along a chain of ancestors.

Note

When you notice unexpected behavior with time-sampled transforms, you can try enabling this setting to see if it fixes the issue.

singleThreaded#

Setting Path:

/app/usdrt/population/utils/singleThreaded

Type:

Boolean

Default:

false

Force single-threaded population. Useful for debugging but significantly slower than multi-threaded population.

inferDisplayColorFromMaterial#

Setting Path:

/app/usdrt/population/utils/inferDisplayColorFromMaterial

Type:

Boolean

Default:

false

When enabled, attempts to infer display colors from material properties for visualization purposes.

Fabric Hierarchy Settings#

These settings control the Fabric hierarchy and extent computation behavior.

progressiveExtentsUpdate#

Setting Path:

/app/usdrt/hierarchy/progressiveExtentsUpdate

Type:

Integer

Default:

1000

Enable progressive extent updates. When enabled (non-zero), extents are updated progressively over multiple frames. Set to 0 to update all extents immediately on each change; note that this may significantly reduce performance.

Note

When you notice unexpected behavior with extent updates, you can try setting this to 0 to see if it fixes the issue.

fastLeafUpdates#

Setting Path:

/app/usdrt/hierarchy/fastLeafUpdates

Type:

Boolean

Default:

true

Enable optimized updates for leaf nodes in the hierarchy tree. May increase performance when transforms of leaf prims are updated frequently.

partialGpuUpdate#

Setting Path:

/app/usdrt/hierarchy/partialGpuUpdate

Type:

Boolean

Default:

false

Enable partial GPU updates for hierarchy data to improve performance.

Note

This feature may improve performance significantly when most of the hierarchy needs to be updated every frame. It may lead to reduced performance when only a small subset of the hierarchy is changing.

Scene Delegate Settings#

These settings control the behavior of the Fabric Scene Delegate when populating Hydra.

disableLightScaling#

Setting Path:

/app/usdrt/scene_delegate/disableLightScaling

Type:

Boolean

Default:

false

Disable automatic light scaling in the scene delegate.

disableLightLinking#

Setting Path:

/app/usdrt/scene_delegate/disableLightLinking

Type:

Boolean

Default:

false

Disable light linking feature in the scene delegate.

disablePrimvarInheritance#

Setting Path:

/app/usdrt/scene_delegate/disablePrimvarInheritance

Type:

Boolean

Default:

false

Disable primvar inheritance from parent prims in the scene graph.

disableInstancePrimvarOverriding#

Setting Path:

/app/usdrt/scene_delegate/disableInstancePrimvarOverriding

Type:

Boolean

Default:

false

Disable the ability for instances to override primvars from their prototypes.

useHydraBlendShape#

Setting Path:

/app/usdrt/scene_delegate/useHydraBlendShape

Type:

Boolean

Default:

false

Use Hydra’s native blend shape support instead of FSD’s implementation.

createLightsInOrder#

Setting Path:

/app/usdrt/scene_delegate/createLightsInOrder

Type:

Boolean

Default:

false

Create lights in a specific order to ensure deterministic behavior.

useMatrixForInstanceProxyTransforms#

Setting Path:

/app/usdrt/scene_delegate/useMatrixForInstanceProxyTransforms

Type:

Boolean

Default:

true (false in Kit 108 and earlier)

Use matrix representation for instance proxy transforms instead of decomposed (translation, rotation, scale) transforms. This may save memory when instancing is used heavily. Mutually exclusive with instanceCompactTransforms.

Note

USD allows arbitrary affine transforms to be applied to instance proxy prims (including shearing), which may not be represented by decomposed transforms.

provideMaterialNodeParamTypes#

Setting Path:

/app/usdrt/scene_delegate/provideMaterialNodeParamTypes

Type:

Boolean

Default:

false

Provide type information for material node parameters to the renderer.

implicitSphere/numRadialAxial#

Setting Path:

/app/usdrt/scene_delegate/implicitSphere/numRadialAxial

Type:

Integer

Default:

10

Number of radial and axial subdivisions for implicit sphere tessellation. Higher values produce more accurate spheres at the cost of more geometry.

Command Line Usage#

Many of these settings can be overridden from the command line when launching Kit:

# Enable Fabric Scene Delegate
kit.exe --/app/useFabricSceneDelegate=1

# Disable fast diffing
kit.exe --/app/usdrt/population/utils/enableFastDiffing=0

# Enable single-threaded population for debugging
kit.exe --/app/usdrt/population/utils/singleThreaded=1

# Combine multiple settings
kit.exe --/app/useFabricSceneDelegate=1 \\
        --/app/usdrt/population/utils/mergeMaterials=1

Performance Tuning#

Memory Optimization#

To reduce memory usage:

  • Enable mergeMaterials to deduplicate materials

  • Use instanceCompactTransforms for heavily instanced scenes

  • Keep populateAllAuthoredAttributes disabled (default)

  • Keep createAllMaterials disabled (default)

Debugging Settings#

When debugging population issues:

  • Enable singleThreaded for deterministic, easier-to-debug behavior

  • Disable enableFastDiffing if you suspect diffing issues

  • Use populateAllAuthoredAttributes to ensure all data is available in Fabric

Configuration Examples#

High Performance Setup#

--/app/useFabricSceneDelegate=1
--/app/usdrt/population/utils/enableFastDiffing=1
--/app/usdrt/population/utils/mergeMaterials=1
--/app/usdrt/population/utils/enableRendererInstancing=1

Memory Efficient Setup#

--/app/useFabricSceneDelegate=1
--/app/usdrt/population/utils/mergeMaterials=1
--/app/usdrt/population/utils/instanceCompactTransforms=1

Debug Setup#

--/app/useFabricSceneDelegate=1
--/app/usdrt/population/utils/singleThreaded=1
--/app/usdrt/population/utils/enableFastDiffing=0
--/app/usdrt/population/utils/populateAllAuthoredAttributes=1