Skip to content

Restore RT2 RenderCfg fields removed in PhysicsManager refactor#5167

Open
nblauch wants to merge 1 commit intoisaac-sim:developfrom
nblauch:nick/restore-rt2-rendercfg-v2
Open

Restore RT2 RenderCfg fields removed in PhysicsManager refactor#5167
nblauch wants to merge 1 commit intoisaac-sim:developfrom
nblauch:nick/restore-rt2-rendercfg-v2

Conversation

@nblauch
Copy link
Copy Markdown

@nblauch nblauch commented Apr 3, 2026

Description

PR #4142 added 10 typed RT2 (RealTimePathTracing) fields to RenderCfg to expose the carb settings that actually control rendering quality under the RT2 mode that has been default since Isaac Sim 4.5. The PhysicsManager refactor in PR #4564 (commit 0ba9c5cb) accidentally removed all 10 of these fields during a large simulation_cfg.py rewrite, while the .kit preset files that reference the same carb paths were left intact.

This PR restores the removed fields and their field_to_setting mappings, along with test coverage.

Restored fields:

Field Carb Path
max_bounces /rtx/rtpt/maxBounces
split_glass /rtx/rtpt/splitGlass
split_clearcoat /rtx/rtpt/splitClearcoat
split_rough_reflection /rtx/rtpt/splitRoughReflection
ambient_light_intensity /rtx/sceneDb/ambientLightIntensity
ambient_occlusion_denoiser_mode /rtx/ambientOcclusion/denoiserMode
subpixel_mode /rtx/raytracing/subpixel/mode
enable_cached_raytracing /rtx/raytracing/cached/enabled
max_samples_per_launch /rtx/pathtracing/maxSamplesPerLaunch
view_tile_limit /rtx/viewTile/limit

Without these fields, users can only reach RT2 quality knobs through the carb_settings escape-hatch dict, while the existing named fields (samples_per_pixel, enable_translucency, enable_reflections, enable_direct_lighting) map to RT1 Legacy carb paths that RT2 ignores entirely.

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • I have updated the changelog and the corresponding version in the extension's config/extension.toml file
  • I have added my name to the CONTRIBUTORS.md or my name already exists there

PR isaac-sim#4142 added 10 RT2 typed fields to RenderCfg (max_bounces,
split_glass, split_clearcoat, split_rough_reflection,
ambient_light_intensity, ambient_occlusion_denoiser_mode,
subpixel_mode, enable_cached_raytracing, max_samples_per_launch,
view_tile_limit) and their field_to_setting mappings. These were
accidentally removed in the PhysicsManager refactor (PR isaac-sim#4564,
commit 0ba9c5c). This restores them along with test coverage.
@github-actions github-actions bot added the isaac-lab Related to Isaac Lab team label Apr 3, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 3, 2026

Greptile Summary

This PR restores 10 RT2 (RealTimePathTracing) fields to RenderCfg and their corresponding field_to_setting mappings in SimulationContext that were accidentally removed during the PhysicsManager refactor in PR #4564. The core restoration — field declarations, type annotations, docstrings, and carb-path mappings — looks correct and complete.

Two minor issues to be aware of: the docstrings for split_rough_reflection and enable_cached_raytracing document their carb-system defaults as True, but test_render_cfg_defaults uses False for both under a # RT2 defaults comment. Additionally, the two tests that directly verify the RT2 field-to-setting round-trip (test_render_cfg and test_render_cfg_defaults) are both decorated with @pytest.mark.skip, so the restored mappings remain untested in CI until that skip is removed. The CHANGELOG and config/extension.toml were not updated per the project's contribution guidelines.

Confidence Score: 5/5

Safe to merge; the core field restoration and carb-path wiring are correct, and all remaining findings are P2.

All findings are P2: two docstring/test default inconsistencies and skipped tests. The restored cfg fields and field_to_setting mappings are correct, matching the original PR #4142 intent and the kit preset files.

test_simulation_render_config.py — the RT2-specific tests are skipped and the default values used in test_render_cfg_defaults contradict two docstrings.

Important Files Changed

Filename Overview
source/isaaclab/isaaclab/sim/simulation_cfg.py Adds 10 RT2 RenderCfg fields with correct type annotations and docstrings; minor docstring default inconsistency for split_rough_reflection and enable_cached_raytracing.
source/isaaclab/isaaclab/sim/simulation_context.py All 10 RT2 fields correctly wired into field_to_setting dict; order and carb paths match the cfg file.
source/isaaclab/test/sim/test_simulation_render_config.py RT2 fields added to test_render_cfg and test_render_cfg_defaults, but both tests are @pytest.mark.skip, providing no active CI coverage for the restored mappings; default value discrepancy for split_rough_reflection and enable_cached_raytracing vs docstrings.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[RenderCfg field set\ne.g. max_bounces=4] --> B{value is None?}
    B -- Yes --> C[Skip field]
    B -- No --> D{in excluded keys?\nrendering_mode / carb_settings / antialiasing_mode}
    D -- Yes --> E[Handled separately]
    D -- No --> F[field_to_setting lookup]
    F --> G{mapping found?}
    G -- No --> H[Unknown field, skipped]
    G -- Yes --> I[set_setting carb path\ne.g. /rtx/rtpt/maxBounces]
    I --> J[SettingsHelper.set\nauto-types bool/int/float/str]
    J --> K[SettingsManager writes\nto carb runtime]
Loading

Comments Outside Diff (1)

  1. source/isaaclab/test/sim/test_simulation_render_config.py, line 29-30 (link)

    P2 New RT2 field tests are always skipped

    Both test_render_cfg (line 29) and test_render_cfg_defaults (line 192) — the only tests that directly verify the 10 restored RT2 field-to-setting mappings — carry @pytest.mark.skip. The PR checklist claims "I have added tests that prove my fix is effective", but these tests will never execute in CI. The only active test, test_render_cfg_presets, checks preset-file application and does not exercise any of the new carb paths individually. Consider moving the RT2 assertions into test_render_cfg_presets, or removing the skip once the timeline issue is resolved.

Reviews (1): Last reviewed commit: "Restore RT2 RenderCfg fields removed in ..." | Re-trigger Greptile

Comment on lines +178 to +184
split_rough_reflection: bool | None = None
"""Enables separate rough reflection ray splitting (RT2). Default is True.

Enabling this can reduce noise on rough reflective materials at the cost of performance.

This is set by the variable: ``/rtx/rtpt/splitRoughReflection``.
"""
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Docstring default contradicts test expectation

split_rough_reflection is documented as "Default is True", but test_render_cfg_defaults (line 213) uses False as the expected default value under the # RT2 defaults comment. Similarly, enable_cached_raytracing is documented as "Default is True" (line 215) while the test uses False (line 216). One of these is wrong — either the carb-setting system default changed, or the docstrings are incorrect. If the actual carb defaults are False, the docstrings should read "Default is False".

Copy link
Copy Markdown

@isaaclab-review-bot isaaclab-review-bot bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good restoration PR — the fields, carb path mappings, and test coverage all look correct. One docstring was changed from the original PR #4142 (not a faithful restoration). CI still running (pre-commit, license-check in progress).

Enabling this can reduce noise on rough reflective materials at the cost of performance.

This is set by the variable: ``/rtx/rtpt/splitRoughReflection``.
"""
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The original PR #4142 had this as "Default is False", and test_render_cfg_defaults also uses False. All three .kit presets (performance, balanced, quality) explicitly set splitRoughReflection = true, which strongly implies the carb-level default is false (otherwise the presets wouldn't need to set it).

This should be restored to match the original:

Suggested change
"""
"""Enables separate rough reflection ray splitting (RT2). Default is False.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants