Skip to content

[H4 fix attempt] Add explicit glFinish + wp.synchronize_device before PBO map#5542

Closed
hujc7 wants to merge 2 commits intoisaac-sim:developfrom
hujc7:jichuanh/viz-h4-explicit-sync
Closed

[H4 fix attempt] Add explicit glFinish + wp.synchronize_device before PBO map#5542
hujc7 wants to merge 2 commits intoisaac-sim:developfrom
hujc7:jichuanh/viz-h4-explicit-sync

Conversation

@hujc7
Copy link
Copy Markdown
Collaborator

@hujc7 hujc7 commented May 8, 2026

Fix-attempt PR for the viewergl-fully-black regression on develop.

Hypothesis (H4): warp 1.13 (or a Kit/Replicator version flip in the daily nvcr.io/nvidian/isaac-sim:latest-develop image) changed the implicit CUDA-OpenGL sync semantics inside wp.RegisteredGLBuffer.map, so the CUDA read of the GL PBO can race the asynchronous glReadPixels write into that same PBO.

This patch adds an explicit glFinish() + wp.synchronize_device() between the PBO write and the CUDA-side map. If the test passes with this, the proper fix is upstream in Newton's get_frame.

Companion of #5540 (diagnostic) and #5541 (H6 _make_current attempt). PR #5521 hypothesis disproven by #5539.

DO NOT MERGE — testing only.

…O map

Adds explicit GL fence + CUDA sync between glReadPixels (PBO async readback)
and wp.RegisteredGLBuffer.map (CUDA-side mapped read) in
ViewerGL.get_frame, via a test conftest. Tests whether the regression is a
missed sync between GL framebuffer-to-PBO transfer and CUDA's mapped read.
@github-actions github-actions Bot added the isaac-lab Related to Isaac Lab team label May 8, 2026
@hujc7
Copy link
Copy Markdown
Collaborator Author

hujc7 commented May 8, 2026

Hypothesis disproven. With explicit glFinish() + wp.synchronize_device() inserted between glReadPixels and wp.RegisteredGLBuffer.map, every frame still reads back nonzero=0:

[H4] returned shape=(600, 600, 3)  nonzero=0  first24=[0, 0, 0, ...]

Combined with the diagnostic in #5540 (CPU FBO readback also zero), GL/CUDA sync is not the cause — the FBO itself is empty, so no amount of post-readback sync can produce non-zero pixels. Closing.

@hujc7 hujc7 closed this May 8, 2026
AntoineRichard pushed a commit that referenced this pull request May 8, 2026
#5538)

## Summary

Two unrelated CI breakages on develop, bundled here so develop turns
green in one PR.

### 1. Skip the failing viewergl test

`test_cartpole_newton_visualizer_viewergl_rgb_motion[physx,newton]`
started returning all-black frames on develop after
`nvcr.io/nvidian/isaac-sim:latest-develop` flipped to a Kit 110.1.1 +
USD 25.11 base. The failure has been deterministic across multiple PRs
(#5523, #5495, #5408, …).

Investigation so far has ruled out:
- PR #5521 (revert in
#5539 still failed)
- Newton 1.0 → 1.2.0rc2 viewer code regression (only 7-line addition;
ViewerGL alone yields 1.08M nonzero pixels)
- warp 1.12 → 1.13 RegisteredGLBuffer ABI (byte-identical)
- Module-load side effects of `isaaclab_physx.renderers`
- CUDA-GL interop (PR #5540 diagnostic confirms direct CPU FBO readback
also returns zeros, with `GL_NO_ERROR`)
- GL context-currency (PR #5541 H6 attempt: still fails)
- GL/CUDA sync (PR #5542 H4 attempt: still fails)

Diagnostic output (PR #5540 v2):
```
[VIZDIAG] fbo=c_uint(8)  pbo=None  size=600x600
[VIZDIAG] glGetError before: GL_NO_ERROR
[VIZDIAG] CPU-readback: nonzero=0/1080000  max=0  err=GL_NO_ERROR
[VIZDIAG] PBO-result: nonzero=0/1080000  max=0
```

The FBO itself is empty — Newton's pyglet/EGL renderer is not depositing
pixels under Kit 110.1.1, even though `tiled_camera_rgb_non_black` (Kit
RTX path) on the same env passes. Underlying root cause still being
chased; this PR ships the skip to unblock develop.

### 2. Fix warp intersphinx 404 in docs build

`https://nvidia.github.io/warp/objects.inv` started returning 404 —
Warp's `objects.inv` only lives at `/stable/` and `/latest/` now. With
Sphinx's `warnings_treated_as_errors`, the broken intersphinx fetch
fails the docs build on every PR. Pinning to `/stable/` (matches the
existing PyTorch `/docs/2.11/` workaround pattern in the same file).

Verified `https://nvidia.github.io/warp/stable/objects.inv` returns 200.

## Test plan

- [x] CI `isaaclab_visualizers` on this branch — was passing earlier
with the skip; will re-verify with the bundled docs fix
- [ ] CI `Build Latest Docs` on this branch — must turn green (was
failing on every recent PR before this fix)

## Re-enable plan

Once the underlying viewergl bug is identified and fixed, drop the
`@pytest.mark.skip` decorator and remove the
`jichuanh-disable-viewergl-flaky.skip` fragment.
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.

1 participant