Update OVRTX runtime to 0.4.1 - #7108
Conversation
Greptile SummaryUpdates Isaac Lab to the exact public OVRTX 0.4.1 runtime and aligns renderer behavior, dependency resolution, documentation, tests, and golden images with that release.
Confidence Score: 5/5The PR appears safe to merge because no blocking failure remains within the eligible follow-up-review scope. No blocking failure remains. Important Files Changed
Reviews (3): Last reviewed commit: "test: Fix handover preset merge regressi..." | Re-trigger Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
The OVRTX 0.4.1 dependency, public-index routing, synchronous texture streaming, updated rendering expectations, and golden-image rebaselines are internally consistent. One documentation inconsistency remains: the installation section now directs users to public PyPI while still stating that ovrtx is hosted on pypi.nvidia.com.
- Design and architecture: The renderer-specific configuration remains contained in
isaaclab_ov, while the dependency range and public-index routing are consistently reflected in the project metadata and lockfile. No architectural concern was identified. - API: No public Isaac Lab API compatibility issue was identified. The changed parametrization helper signatures are test-local, and their callers are updated in the patch.
- Implementation: The renderer construction, dependency resolution, test parametrization, tolerance selection, and updated rendering baselines align with the OVRTX 0.4.1 migration. Before merge, update the unchanged hosting statement in
docs/source/overview/core-concepts/renderers.rstso it no longer contradicts the new public-PyPI installation guidance.
Minor fixes needed. Posted 1 actionable finding inline.
Automated review; human maintainers own approval decisions.
Use the public OVRTX release, enable synchronous texture streaming, and retire rendering exemptions fixed by the updated runtime.
0bbdfb6 to
0310d75
Compare
Remove obsolete compatibility paths and align renderer configuration, license handling, and documentation with the required runtime.
Keep release validation on the exact public OVRTX build instead of admitting unverified 0.4.x updates.
|
|
||
| # OVRTX 0.4.1 rendering fixes allow a tighter tolerance for data types that | ||
| # are not dominated by scale-sensitive depth normalization. | ||
| _OVRTX_MAX_DIFFERENT_PIXELS_PERCENTAGE = 3.0 |
There was a problem hiding this comment.
Isaac RTX has already enabled the synchronous texture streaming - #6932 .
Instead of maintaining a per-renderer threshold, it seems we are good to have a unified threshold. But this can be done separately after we observe the CI for a few runs to be confident.
There was a problem hiding this comment.
Agreed. I am keeping the renderer-specific cap in this PR. The OVRTX 0.4.1 legacy lane passed and focused fresh-process runs showed stable Cartpole output, but Lift motion still needed the inherited retry policy. Unifying or tightening the thresholds should remain a follow-up after more CI-host data.
Prevent native soft-lift crashes from aborting every environment smoke suite until the underlying issue is fixed.
Signed-off-by: Kelly Guo <kellyg@nvidia.com>
Restore the standard Cartpole tolerance, re-enable stable Lift MDL cases, and capture the required third motion frame with validated goldens.
Align the preset test with the shared BALL_CFG introduced by the merged manager-based handover refactor.
|
|
||
| # Native crashes cannot be contained by xfail because the process exits before | ||
| # pytest records an outcome. Temporarily skip these tasks in every environment smoke suite. | ||
| SKIP_TASKS: dict[str, str] = { |
There was a problem hiding this comment.
unrelated error causing a crash that is in Isaaclab_tasks[3/3] that is coming from test_environments_isaacsim_physx.py. while the fix is in flight, temporarily skip this test.
| # Users should use ``instance_segmentation`` or ``semantic_segmentation`` instead. | ||
| _OVRTX_DATA_TYPES = tuple(dt for dt in _DEFAULT_SENSOR_DATA_TYPES if dt != "instance_id_segmentation_fast") | ||
|
|
||
| _OVRTX_TEXTURE_READINESS_DATA_TYPES = ( |
There was a problem hiding this comment.
updated all related goldens to these AOVs in all rendering correctness test cases.
| "simple_shading_diffuse_mdl", | ||
| "simple_shading_full_mdl", | ||
| ) | ||
| _OVRTX_TEXTURE_READINESS_XFAIL_REASON = "OVRTX 0.4 may return before textured materials are ready (NVBUG#6505191)." |
There was a problem hiding this comment.
updated all related goldens to these AOVs in all rendering correctness test cases.
| ) | ||
| _OVRTX_TEXTURE_READINESS_XFAIL_REASON = "OVRTX 0.4 may return before textured materials are ready (NVBUG#6505191)." | ||
| _KITLESS_STAGE_VARIANTS = ("legacy", "ovstage") | ||
| _LIFT_RENDERER_CRASH_SKIP_REASON = "Lift kitless OVRTX MDL rendering can kill the test process (NVBUG#6524987)." |
There was a problem hiding this comment.
in 30/30 local runs I did not observe the crash, removing skip to test this on CI 🤞
| _OVRTX_TEXTURE_READINESS_XFAIL_REASON = "OVRTX 0.4 may return before textured materials are ready (NVBUG#6505191)." | ||
| _KITLESS_STAGE_VARIANTS = ("legacy", "ovstage") | ||
| _LIFT_RENDERER_CRASH_SKIP_REASON = "Lift kitless OVRTX MDL rendering can kill the test process (NVBUG#6524987)." | ||
| _OVRTX_CLOTH_MOTION_XFAIL_REASON = "Missing cloth in OVRTX 0.4 motion vectors (NVBUG#6489754)." |
There was a problem hiding this comment.
cloth is now visible (needed to move rendering 1 frame up - will be addressed in a future release, not a blocker)
There was a problem hiding this comment.
locally I was able to repeatedly get deterministic outputs for this frame, updated golden.
There was a problem hiding this comment.
this file can be removed since we are getting rid of the xfails
There was a problem hiding this comment.
we can do it separately, and have the version pin go in first.
There was a problem hiding this comment.
sounds good, I can have a follow up PR to remove this file
| from isaaclab_physx.physics import PhysxCfg | ||
|
|
||
| from isaaclab_tasks.core.handover.handover_env_cfg import HandoverEnvCfg, ObjectCfg | ||
| from isaaclab_tasks.core.handover.handover_env_cfg import BALL_CFG, HandoverEnvCfg |
There was a problem hiding this comment.
this is unrelated to the PR, also addressed in #7144 - kept in this PR for speed
|
@greptile review |
| return make_skip_rendering_params( | ||
| params, | ||
| { | ||
| (variant, physics_backend, "ovrtx_renderer", data_type): _LIFT_RENDERER_CRASH_SKIP_REASON |
There was a problem hiding this comment.
empirically validated this on local runs, let's keep an eye out for this one in CI
| return | ||
|
|
||
| if callspec.params.get("renderer") == "ovrtx_renderer": | ||
| monkeypatch.setenv("ISAAC_LAB_OVRTX_READ_GPU_TRANSFORMS", "0") |
There was a problem hiding this comment.
removed this workaround
|
|
||
| # Remove the extra step when NVBug 6565960 is fixed. | ||
| if renderer == "ovrtx_renderer": | ||
| num_steps += 1 |
There was a problem hiding this comment.
new known workaround, will be addressed in ovrtx-0.5.0
|
|
||
| # Allow OVRTX Cartpole RGB/RGBA variation tracked by NVBUG#6152566; the SSIM gate remains enabled. The | ||
| # deterministic Warp rasterizer and the Isaac RTX reference path keep the stricter env-wide threshold. | ||
| _CARTPOLE_OVRTX_RGB_MAX_DIFFERENT_PIXELS_PERCENTAGE = 2.0 |
There was a problem hiding this comment.
no longer need to single this out, it's now deterministic
Description
Update Isaac Lab to the exact public OVRTX
0.4.1.364340release and adopt its rendering, packaging, and determinism fixes.Changes
ovrtx==0.4.1.364340and resolve it explicitly from public PyPI.The existing
ovphysx==0.5.9andovstage==0.1.0.346039pins remain unchanged. Their companion bump will be handled separately and must preserve the exact OVRTX 0.4.1 pin.Intentional deferrals
Validation
Local validation:
uv lock --checkAdditional integration fixes
ObjectCfgwithBALL_CFG.files.pythonhosted.orgHTTP 502 failures are being rerun and are unrelated to the change.Type of change
Checklist
pre-commitchecks with./isaaclab.sh --formatsource/<pkg>/changelog.d/for every touched package (do not editCHANGELOG.rstor bumpextension.toml— CI handles that)CONTRIBUTORS.mdor my name already exists there