Enabled OVRTX rendering tests on CI#5492
Conversation
There was a problem hiding this comment.
🤖 Isaac Lab Review Bot
Summary
This PR enables OVRTX rendering tests on GitHub CI by removing skip markers that previously disabled these tests on GitHub Actions runners. It also removes an LD_PRELOAD workaround from the documentation, suggesting the underlying OVRTX segfault issue has been resolved upstream. The changes are straightforward and self-contained.
Architecture Impact
Self-contained. The changes affect only test parametrization markers and documentation. No runtime code paths, APIs, or core framework components are modified. The KITLESS_PHYSICS_RENDERER_AOV_COMBINATIONS list is consumed by test modules that parametrize rendering correctness tests.
Implementation Verdict
Ship it — assuming the underlying OVRTX stability issue is actually resolved (which should be verified by CI passing).
Test Coverage
This PR enables existing tests rather than adding new functionality. The OVRTX rendering tests already exist and were being skipped; they will now run in CI. No new tests are needed for this change.
CI Status
No CI checks available yet. This is critical to verify — the entire premise of this PR is that OVRTX tests now pass on GitHub Actions. The PR should not be merged until CI demonstrates the tests pass without segfaults.
Findings
🔵 Improvement: source/isaaclab_tasks/test/rendering_test_utils.py:66-71 — Dead code removal is correct
The removal of _SKIP_ON_GITHUB_ACTIONS and _SKIP_ON_GITHUB_ACTIONS_MARK is clean. These variables were only used by the removed marks= parameters. No orphaned references remain.
🔵 Improvement: docs/source/setup/installation/kitless_installation.rst:108 — Documentation cleanup is appropriate
Removing the LD_PRELOAD workaround improves UX if the underlying issue is fixed. However, consider adding a brief note or troubleshooting section mentioning this was previously required, in case users on older OVRTX versions encounter the issue.
🟡 Warning: PR Description — Missing root cause context
The PR description doesn't explain why these tests can now be enabled. Was there an OVRTX bug fix? A CI runner update? A change in how the tests are invoked? This context is valuable for future debugging if the issue resurfaces. Consider adding this to the PR description or changelog entry.
🟡 Warning: source/isaaclab_tasks/changelog.d/huidongc-enable-ovrtx-rendering-tests.rst:1-4 — Changelog entry is minimal
The changelog says what changed but not why. For future maintainers, it would be helpful to note that this was previously disabled due to segfaults and is now enabled due to [upstream fix / environment change / etc.].
🔵 Improvement: source/isaaclab_tasks/test/rendering_test_utils.py:175-220 — Consider conditional skip as fallback
If OVRTX tests become flaky on CI in the future, consider keeping the skip infrastructure but making it configurable via an environment variable (e.g., ISAAC_LAB_SKIP_OVRTX_TESTS). This would allow quick disabling without code changes if issues recur. This is optional — the current approach is valid.
Greptile SummaryThis PR enables OVRTX kitless rendering tests on CI by removing the
Confidence Score: 3/5Safe to merge for immediate CI enablement, but two structural gaps mean the new tests will silently break or become no-ops when OVRTX 0.3 ships. The renderer fix and CI wiring are correct, but the
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[CI Job starts] --> B["pip install ovrtx (unpinned)"]
B --> C{OVRTX version?}
C -->|0.2.x| D[Tests run with 0.2 renderer]
C -->|0.3.x published| E["Tests run with 0.3 renderer"]
D --> F{Golden image exists?}
E --> F
F -->|Yes| G[Compare render vs golden]
F -->|No - depth / segmentation / cartpole albedo| H["First run: save current as golden, FAIL"]
H --> I["_FLAKY_MARK retry: compare against self, PASS"]
G -->|Match| J[Test PASSES]
G -->|Mismatch 0.3 vs 0.2 golden| K["Test FAILS - all shards affected"]
I --> J
Reviews (3): Last reviewed commit: "Increase timeout." | Re-trigger Greptile |
There was a problem hiding this comment.
🤖 Isaac Lab Review Bot
Summary
The new commits add automatic OVRTX installation logic in tools/conftest.py that detects when kitless rendering tests are scheduled and installs ov[ovrtx] on-demand if not already present. This addresses the previous concern about missing root cause context — the PR now actively ensures the dependency is available rather than just removing skip markers.
Previous Concerns Status
- Missing root cause context — Partially addressed by the new installation logic, though the changelog could still note this infrastructure change.
- Minimal changelog entry — Still applies; the changelog doesn't mention the new auto-install mechanism.
- Other previous findings (dead code removal, doc cleanup) remain correctly implemented.
New Findings
🔴 Critical: tools/conftest.py:106-110 — subprocess.run missing timeout
The subprocess.run call for isaaclab.sh -i ov[ovrtx] has no timeout. If the install hangs (network issues, pip resolver loops), CI will block indefinitely until the job-level timeout kills it. Add timeout=600 (or similar reasonable value) to prevent this.
result = subprocess.run(
[isaaclab_cli, "-i", "ov[ovrtx]"],
cwd=workspace_root,
capture_output=True,
text=True,
timeout=600, # Add timeout to prevent indefinite hangs
)🟡 Warning: tools/conftest.py:85-92 — Swallowing import exceptions may hide issues
The except (ValueError, ModuleNotFoundError): pass block silently continues if find_spec raises. This is probably fine, but a debug print would help diagnose edge cases where ovrtx exists but can't be introspected.
Implementation Verdict
Minor fixes needed — Add a timeout to the subprocess call to prevent CI hangs.
50bcd1e to
d44676a
Compare
There was a problem hiding this comment.
🤖 Isaac Lab Review Bot
Summary
The latest commit (d44676a) removes the auto-install logic from tools/conftest.py entirely and instead adds ov[ovrtx] installation directly to the base Docker image. This is a cleaner approach that avoids runtime subprocess calls and ensures the dependency is always available in the CI environment.
Previous Concerns Status
- Missing timeout on subprocess.run — No longer applicable; the subprocess call was removed entirely.
- Swallowing import exceptions — No longer applicable; the auto-install logic was removed.
- The Dockerfile change is straightforward and correctly chains the install commands.
Architecture Impact
Self-contained. The Docker image now includes OVRTX by default, and the skip markers are removed from the test parameters. No cross-module concerns.
Implementation Verdict
Ship it — The changes are clean and correct. Moving OVRTX installation to the Docker build phase is the right approach for CI reliability.
Test Coverage
This PR enables existing tests to run; no new test logic is added. The rendering tests themselves are comprehensive.
CI Status
Pre-commit passes. Other checks are pending but unrelated to the code changes.
Findings
No new issues. The PR is ready to merge.
There was a problem hiding this comment.
🤖 Isaac Lab Review Bot
Summary
This is a follow-up review. The PR now adds OVRTX installation to the Docker base image and removes the LD_PRELOAD workaround from the kitless installation docs, indicating the underlying issue has been resolved upstream.
Previous Concerns Status
Previous review noted "Ship it" with no issues. That assessment remains valid.
Implementation Verdict
Ship it — The changes are clean: Docker installs OVRTX at build time, skip markers removed from tests, and the LD_PRELOAD hack is no longer needed in docs.
CI Status
The isaaclab_ov job is failing. This should be investigated to confirm it's unrelated to this PR before merging — the failure could indicate OVRTX tests are now running but encountering environment issues on the CI runner.
Findings
🟡 Warning: CI failure in isaaclab_ov — Verify this failure is pre-existing or unrelated to enabling OVRTX tests. If the newly-enabled tests are failing, this PR should not merge until they pass.
There was a problem hiding this comment.
🤖 Isaac Lab Review Bot
Summary
This follow-up adds three missing RenderBufferKind entries to the OVRTX renderer contract test and moves wp.init() before the skip check by using pytest.mark.skipif instead of pytest.skip() inside the test body.
Previous Concerns Status
Previous CI concern about isaaclab_ov failure — the test changes in this commit appear to address potential initialization ordering issues by calling wp.init() at test start and using proper skip markers.
Implementation Verdict
Ship it — The test corrections are valid: the three shading buffer kinds were missing from the expected set, and the warp initialization fix ensures wp.init() runs before any warp operations.
CI Status
CI pending — verify isaaclab_ov tests pass with these fixes before merging.
Findings
No new issues. The changes are correct and improve test robustness.
a4f43b7 to
02f248a
Compare
5cce95b to
8268006
Compare
8268006 to
eb9ed9a
Compare
This reverts commit 9af4bb4.
Description
Enabled OVRTX rendering tests on CI.
OVRTX 0.3is not published yet, so we have to useOVRTX 0.2render output as golden images. Some of them are incorrect, I will update those images when we pin toOVRTX 0.3.Fixes # (issue)
Type of change
Screenshots
Please attach before and after screenshots of the change if applicable.
Checklist
pre-commitchecks with./isaaclab.sh --formatconfig/extension.tomlfileCONTRIBUTORS.mdor my name already exists there