Skip to content

[Backport release/3.0.0] Complete September 19-20 develop backports (#7530, #7899) - #7926

Merged
ooctipus merged 2 commits into
isaac-sim:release/3.0.0from
StafaH:backport/7530-release-3.0.0
Sep 21, 2026
Merged

ooctipus merged 2 commits into
isaac-sim:release/3.0.0from
StafaH:backport/7530-release-3.0.0

Conversation

@StafaH

@StafaH StafaH commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Backports the two changes merged into develop since September 19 that are still missing from release/3.0.0:

Source PR Change Source commit
#7530 Validate camera outputs against renderer capabilities before simulator startup 31d1c53510490c76841e9c35a329574b357d9900
#7899 Share native resources by construction cfg and centralize ownership and teardown c90c3a1097a0a669a823b880b1c8d0654d7fd267

Includes the original regression tests, API documentation, and changelog fragments. #7530 applied without changes. #7899 required two conflict resolutions to retain the release branch's OVRTX mapping API, documentation, and tests. Of its 62 files, 59 match the merged source exactly; the other three retain those existing release additions. Release versions, lockfile entries, compiled changelogs, and documentation routing are preserved.

Audit

Checked all 33 PRs merged from September 19, 2026 00:00 America/Los_Angeles through develop commit c90c3a1097 (September 20, 21:29 Pacific), against release base 75e9c8ce12. 31 are already backported; the remaining two are included here. Git first-parent history and GitHub's merged PR list agree. Automatic changelog/version compilation remains branch-specific.

31 PRs already recorded in release
Source PRs Existing release commit
#7777, #7608, #7895, #7872, #7831, #7834, #7838, #7840, #7903, #7674 ff22c52891
#7886 41bfaee5f0
#7042 970d21ef48
#7905 f0563d1f9e
#7604 dca7cfe984
#7610, #7603 5dd2220243
#7839 b8b93bb96e
#6851 baa025ad90
#7250 f86b33e6b1
#7910 24f7b4842b
#7810 9738e096c8
#7832 be270ed88b
#4679 80157aa22d
#7914 01b59b5a22
#7502 db7db61f60
#7918 bca9dba8bb
#7919 ef1514c97c
#7922 7d6979a19e
#7923 a1dd560b98
#7924 892e51dc1d
#7925 75e9c8ce12

Validation

745 tests passed on the combined backport:

  • Core registry, configclass, replication, camera contracts, and task presets: 158 passed.
  • Newton manager/model/reset and coupling suites: 299 passed.
  • OVPhysX/OVRTX lifecycle, scene data, bindings, and material contracts: 141 passed on CPU.
  • Clone-plan algebra: 83 passed.
  • All 8 OV CUDA cases skipped in the CPU run: 8 passed on GPU.
  • OVPhysX ray-caster regression: 1 passed.
  • Kit simulation-context and PhysX scene-data tests: 54 passed.
  • Newton solver reset integration: 1 passed.

The registry-identity and borrowed-config-field regressions both fail with the pre-backport implementations and pass with this change. Backport file-scope validation, source-file comparison, git diff --check, and uv run isaaclab -f passed.

Local validation used PyTorch 2.12.0/CUDA 13.0, Isaac Sim 6.0.1.0, Newton 1.6.0rc1, and an RTX 5090. Existing deprecation/runtime warnings occurred. Full Docker CI is requested separately against the pinned environment; local checks do not claim a startup or runtime speedup.

Checklist

  • Read the contribution guidelines and ran formatting/changelog checks.
  • Included source tests, documentation, and changelog fragments.
  • Verified regression behavior and preserved release-specific changes.
  • Recorded source commit hashes and audited the requested merge window.

@StafaH
StafaH requested a review from a team September 21, 2026 03:54
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label Sep 21, 2026
@greptile-apps

greptile-apps Bot commented Sep 21, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 4/5

The PR needs one compatibility-validation fix before merging because valid-looking OVRTX configurations can still fail later during renderer setup.

Findings

  1. P1 OVRTX combinations pass validation ▶

Summary

This backport introduces configuration-time camera output validation, recursively runs validation hooks for nested configclasses, and moves renderer output contracts into renderer configuration objects.

  • Newton, OVRTX, and Isaac RTX configurations now publish output layouts without constructing renderer implementations.
  • Camera configurations reject output names absent from the selected renderer contract.
  • Task-specific Newton guards are replaced by the shared camera validation path.
  • Renderer and task tests cover supported and unsupported output presets.
  • One OVRTX incompatibility remains deferred to renderer construction because the shared contract models individual outputs but not invalid output combinations.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  E[Environment configuration] --> V[Recursive configclass validation]
  V --> C[CameraCfg.validate_config]
  C --> R[RendererCfg.supported_output_types]
  R --> N[Newton contract]
  R --> P[Isaac RTX contract]
  R --> O[OVRTX contract]
  C -->|supported| S[Simulator and renderer startup]
  C -->|unsupported name| X[Early ValueError]
  S --> M{OVRTX combination valid?}
  M -->|yes| D[Create render product]
  M -->|no| L[Late ValueError]
Loading

Reviews (1) · Last reviewed commit: "Backport renderer output validation to r..."

Comment on lines +261 to +263
return
supported = {str(kind) for kind in supported_specs}
unsupported = sorted(set(self.data_types) - supported)

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.

P1 OVRTX combinations pass validation

This checks each requested output independently, so an OVRTX camera requesting both rgb and simple_shading_full_mdl passes validate() even though those outputs cannot share one render product. The same gap allows multiple simple-shading modes. These configurations then raise during renderer setup, defeating the new early compatibility check.

Knowledge Base Used:

@StafaH

StafaH commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator Author

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 21, 2026

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

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.

Isaac Lab Review Bot

The backport centralizes camera output capability contracts on renderer configs and uses recursive configclass validation to reject incompatible camera/renderer combinations before simulator startup. The shared validation path correctly replaces the removed Shadow Hand and Lift-specific Newton guards.

  • Design and architecture: The backend-agnostic RendererCfg.supported_output_types() contract is coherent across Newton, OVRTX, and Isaac RTX. Post-order traversal reaches nested CameraCfg instances while excluding arbitrary non-configclass objects, preserving the intended ownership boundaries.
  • API: RendererCfg.supported_output_types() is additive, and its None default preserves deferred validation for dynamically selected renderers. Concrete configs return fresh mappings with the established output names and layouts; runtime Isaac RTX filtering for Isaac Sim versions before 6 remains intact.
  • Implementation: The validation traversal reports missing fields before invoking custom hooks, then runs nested hooks before their owners. Camera compatibility checks compare requested data types against the selected config contract, while runtime renderer checks remain available for dynamic or version-dependent capabilities. The main residual tradeoff is that pre-6 Isaac RTX limitations cannot be detected from the config-only contract and therefore remain deferred to renderer initialization.

No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.

Automated review; human maintainers own approval decisions.

Include the complete ownership, cfg identity, lifecycle, tests, and
migration documentation change. Preserve the release branch's OVRTX
mapping API and its documentation and regression tests when resolving
the two cherry-pick conflicts.

(cherry picked from commit c90c3a1)
@ooctipus ooctipus changed the title [Backport] PR #7530 to release/3.0.0 [Backport release/3.0.0] Complete September 19-20 develop backports (#7530, #7899) Sep 21, 2026
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 21, 2026
@ooctipus

Copy link
Copy Markdown
Collaborator

run-ci

@isaaclab-bot isaaclab-bot Bot added ci:run-docker Trigger the on-demand Docker and GPU CI workflow and removed ci:run-docker Trigger the on-demand Docker and GPU CI workflow labels Sep 21, 2026
@ooctipus
ooctipus merged commit 1bb4ab1 into isaac-sim:release/3.0.0 Sep 21, 2026
53 checks passed
ooctipus added a commit that referenced this pull request Sep 24, 2026
…ng docs (#7957)

Backports the three changes from the September 20–23 `develop` audit
that are missing from `release/3.0.0`, alongside the existing
cloning-guide backport:

- #7722 (`4cf439dfeb`): reject a second `SimulationContext` construction
instead of silently discarding its configuration. Includes the original
fixture cleanup and regression coverage.
- #7893 (`22fcd71bc4`): validate DelayBuffer lag values before mutating
its live configuration.
- #7947 (`6e9ef17f59`): make `v3.0.0-EA` the default documentation
version in deployment and local multi-version builds.
- #7129 (`354168560f`): clarify that `replicate_physics=False` skips the
active physics context while other declared replication contexts still
run.

**Compatibility:** repeated `SimulationContext(...)` calls now raise.
Retrieve the live context with `SimulationContext.instance()`, or call
`clear_instance()` before constructing a replacement. The original major
changelog fragment includes this migration.

The runtime and test files match current `develop`. The docs-default
backport adapts the release branch's existing redirect template,
validates the target page, and preserves explicit overrides. The
cloning-guide backport preserves the current release APIs; its obsolete
sections were already removed.

## Release audit

Checked all **35 PRs** merged into `develop` from **2026-09-20 16:43:18
UTC** through `cff81e8473` (September 23), against release head
`5d3e0b695e`. **32 are already covered; the remaining three are included
here.** Git history, patch equivalence, GitHub's merged PR list, and
remaining file differences were checked. Branch-specific
version/changelog compilation and existing release-only changes are
preserved.

<details>
<summary>Already covered PRs</summary>

26 have an equivalent patch in release: #7919, #7922, #7923, #7924,
#7925, #6758, #7928, #7902, #7927, #7891, #7931, #7691, #7861, #7929,
#7916, #7939, #4609, #7942, #7940, #7948, #7937, #7955, #7960, #7961,
#7970, #7958.

Six were squash-merged or adapted: #7530 and #7899 in #7926; #7637 in
#7933; #7860 in #7936; #7954 and #7950 in #7964. Their implementation
differences were checked against the current release tree.

</details>

## Validation

- **276 tests passed**: SimulationContext (51, including CPU/CUDA),
headless context construction (15), nine schema/fragment suites (165),
four manager suites (38), and DelayBuffer (7).
- Both backported regressions reproduce with the original release
implementations.
- Docs redirect recipe: local/deployment EA defaults, explicit override,
and missing-target rejection passed with a stubbed Sphinx builder.
- All 22 changed files match the intended backport scope; `uv run
isaaclab -f` and `git diff --check` passed.
- Fresh Sphinx validation (`-b dummy -W --keep-going`): passed without
warnings, excluding static assets as the HTML builder does. Full HTML
documentation CI is running.

Local runtime validation used PyTorch 2.12.0, CUDA 13.0, Isaac Sim
6.0.1.0, and an RTX 5090. Existing runtime/deprecation warnings
occurred; the CI jobs validate the pinned environments.

The previous [docs CI
failure](https://github.com/isaac-sim/IsaacLab/actions/runs/35795116307/job/106972539281)
was an external connection reset fetching the Omniverse intersphinx
inventory, producing one warning under `-W`. That URL returned HTTP 200
when rechecked. This update starts a fresh docs build.

---------

Co-authored-by: hujc <jichuanh@nvidia.com>
Co-authored-by: Zihan Xu <2024010904024@std.uestc.edu.cn>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation isaac-lab Related to Isaac Lab team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants