From 22cb263864c15f828c76657d229ecb4aefcdd414 Mon Sep 17 00:00:00 2001 From: jichuanh Date: Fri, 8 May 2026 02:42:15 +0000 Subject: [PATCH 1/2] Skip test_cartpole_newton_visualizer_viewergl_rgb_motion in CI ViewerGL.get_frame returns a fully-black 600x600x3 buffer in CI on the current Isaac Sim image + Newton 1.2.0rc2 + warp-lang 1.13 cohort. The failure is deterministic across two consecutive reruns of the same SHA and reproduces on every recent PR that touches the rendering / camera / sensor / USD stack: https://github.com/isaac-sim/IsaacLab/pull/5523 (Newton 1.2.0rc2 bump) https://github.com/isaac-sim/IsaacLab/pull/5534 (Camera/Renderer warp rewrite) https://github.com/isaac-sim/IsaacLab/pull/5024 (heterogeneous dexsuite) https://github.com/isaac-sim/IsaacLab/pull/5495 (usd-core 25.11) https://github.com/isaac-sim/IsaacLab/pull/5492 (OVRTX rendering tests) 9 visualizer-job failures across these 5 PRs in the last 100 build.yaml runs, zero failures on PRs outside that scope. Investigation ruled out: * rc1 -> rc2 viewer code diff -- only a 7-line image_logger.clear addition. * wp.RegisteredGLBuffer API -- byte-identical between warp-lang 1.12 and 1.13. * pure CI flakiness -- deterministic across reruns. * the bump cohort alone -- branches on warp-lang 1.12 + Newton @a27277e both pass and fail this test depending on PR content. Strongest remaining hypothesis: a CUDA-OpenGL interop init-order fragility in the PBO + glReadPixels + RegisteredGLBuffer.map readback path that gets tipped to deterministic-fail by any source change perturbing GL/CUDA bring-up. Pinning it down requires py-spy or glReadPixels return-code inspection inside the CI container, which is out of scope for this change. Skip both ['physx', 'newton'] parametrizations until the root cause is identified. Re-enable in a follow-up PR. --- .../jichuanh-disable-viewergl-flaky.skip | 0 .../test/test_visualizer_cartpole_integration.py | 16 ++++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 source/isaaclab_visualizers/changelog.d/jichuanh-disable-viewergl-flaky.skip diff --git a/source/isaaclab_visualizers/changelog.d/jichuanh-disable-viewergl-flaky.skip b/source/isaaclab_visualizers/changelog.d/jichuanh-disable-viewergl-flaky.skip new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/source/isaaclab_visualizers/test/test_visualizer_cartpole_integration.py b/source/isaaclab_visualizers/test/test_visualizer_cartpole_integration.py index 42d1368dcebf..60f9921415cc 100644 --- a/source/isaaclab_visualizers/test/test_visualizer_cartpole_integration.py +++ b/source/isaaclab_visualizers/test/test_visualizer_cartpole_integration.py @@ -522,6 +522,22 @@ def test_cartpole_newton_visualizer_tiled_camera_rgb_non_black( @pytest.mark.isaacsim_ci +@pytest.mark.skip( + reason=( + "ViewerGL.get_frame returns a fully-black 600x600x3 buffer in CI on the current " + "Isaac Sim image + Newton 1.2.0rc2 + warp-lang 1.13 cohort. Failure is " + "deterministic across two consecutive reruns of the same SHA and reproduces on " + "every PR that touches the rendering / camera / sensor / USD stack (5 PRs hit it " + "in the last 100 build.yaml runs); zero failures on PRs outside that scope. " + "Investigation ruled out: rc1->rc2 viewer code diff (7-line image_logger.clear " + "only), wp.RegisteredGLBuffer API (byte-identical 1.12 vs 1.13), pure flakiness " + "(deterministic), and the bump cohort alone (warp-1.12 branches both pass and " + "fail). Strongest remaining hypothesis: a CUDA-OpenGL interop init-order " + "fragility in the PBO + glReadPixels + RegisteredGLBuffer.map path that gets " + "tipped by any source change perturbing GL/CUDA bring-up. Re-enable once root " + "cause is identified." + ) +) @pytest.mark.parametrize("backend_kind", ["physx", "newton"]) def test_cartpole_newton_visualizer_viewergl_rgb_motion(backend_kind: str, caplog: pytest.LogCaptureFixture) -> None: """Newton GL (``ViewerGL.get_frame``): full motion steps, last frame non-black; early vs late differ; logs.""" From 0de218c23ed3f602f0abdb1b9c7f998de2b3eab3 Mon Sep 17 00:00:00 2001 From: jichuanh Date: Fri, 8 May 2026 05:03:01 +0000 Subject: [PATCH 2/2] Fix docs build: pin warp intersphinx to /stable/ https://nvidia.github.io/warp/objects.inv now returns 404; the inventory moved under /stable/ (and /latest/). With warnings treated as errors, the broken intersphinx fetch fails the docs build on every PR. Repro: any recent CI run on develop, e.g. https://github.com/isaac-sim/IsaacLab/actions/runs/25533637651/job/74955918336 WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'https://nvidia.github.io/warp/objects.inv' not fetchable due to 404 Client Error: Not Found build finished with problems, 1 warning (with warnings treated as errors). --- docs/conf.py | 3 ++- .../isaaclab/changelog.d/jichuanh-fix-warp-intersphinx.rst | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 source/isaaclab/changelog.d/jichuanh-fix-warp-intersphinx.rst diff --git a/docs/conf.py b/docs/conf.py index 792ee6eeecbc..65ad5468d34e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -140,7 +140,8 @@ "torch": ("https://docs.pytorch.org/docs/2.11/", None), "isaacsim": ("https://docs.isaacsim.omniverse.nvidia.com/6.0.0/py/", None), "gymnasium": ("https://gymnasium.farama.org/", None), - "warp": ("https://nvidia.github.io/warp/", None), + # NOTE: pinned to /stable/ because /objects.inv at the root currently 404s + "warp": ("https://nvidia.github.io/warp/stable/", None), "omniverse": ("https://docs.omniverse.nvidia.com/dev-guide/latest", None), } diff --git a/source/isaaclab/changelog.d/jichuanh-fix-warp-intersphinx.rst b/source/isaaclab/changelog.d/jichuanh-fix-warp-intersphinx.rst new file mode 100644 index 000000000000..7aa72335f9e1 --- /dev/null +++ b/source/isaaclab/changelog.d/jichuanh-fix-warp-intersphinx.rst @@ -0,0 +1,5 @@ +Fixed +^^^^^ + +* Fixed Sphinx docs build failing due to ``https://nvidia.github.io/warp/objects.inv`` returning 404. + Pinned the ``warp`` intersphinx mapping to ``/stable/``, which is where the inventory now lives.