Repository navigation
Add GPU selection for OVXR rendering and scene updates - #8791
hougantc-nvda wants to merge 23 commits into
Conversation
5a0d2b1 to
9220c9f
Compare
85269dc to
c13f861
Compare
Clarification: two intended first-time Teamfood pathsPath A — after merge: prepare the documentation now assuming the importer dependency lands, then #8627, then Lab #8787–#8791, with matching Capture release artifacts installed by Lab through uv. Pending dependency/release timing is expected, not a newly discovered code defect. Path B — before merge: colleagues can already fetch the published cumulative Lab/Capture PR sources, build Capture locally, and apply the scoped dependency/lock preparation in the published source guide. Both routes need complete first-time setup/agent instructions. Local build outputs and these documented consuming-checkout metadata edits are valid temporary preparation; they do not need to wait for the merged packaging or a separate bootstrap implementation. The Teamfood document and both downloadable agent guides now describe these two routes. Read item A below as the final installation integration/automation work, not a blanket gate preventing the basic premerge CPU examples. The unpublished tested renderer delta and I4H publication uncertainty remain separate optional-feature qualifications. No source push or merge is claimed by this clarification. Teamfood: publications needed for first-time colleagues@hougantc-nvda — publication checklist from the independent Teamfood reproduction. @r-schmitt — item A needs coordination with the provider-upgrade ownership in #8627; this is not a request to replace global/Kit defaults with the evaluation pins. GitHub readback: this PR remains open at Already published — do not redo: canonical OvPhysX task selectors, the NumPy/setup recipe corrections, and SO101 Capture-constructor compatibility are in the c13 checkpoint. The current
F. Open limits, not inferred fixes: >300 s cold renderer attach and intermittent GR1 first-Play/Reset recovery remain unexplained. IOMMU translation is a host/runtime compatibility condition, not an Ubuntu-26-only source defect. The bounded I4H 20→5-substep result improved control updates about 3.30→11.43 Hz; it is not headset FPS, 30 Hz qualification, autonomous task success or equivalent contact fidelity. Do not silently change shipped fidelity to five substeps. This conveys the missing publications through the existing owners/stack. It does not authorize a merge, blanket provider upgrade, host changes, or claim that code has been pushed. |
348c042 to
c9708f6
Compare
Consolidate the reviewed PR boundary before rebasing onto current main. Previous cumulative head: 12208c4 Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Consolidate the reviewed PR boundary before rebasing onto current main. Previous cumulative head: 48f8b49 Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Consolidate the reviewed PR boundary before rebasing onto current main. Previous cumulative head: 72bdbe7 Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Consolidate the reviewed PR boundary before rebasing onto current main. Previous cumulative head: f8910f6 Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Consolidate the reviewed PR boundary before rebasing onto current main. Previous cumulative head: 28cd0dc Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Signed-off-by: Hougant Chen <hougantc@nvidia.com>
Signed-off-by: Hougant Chen <hougantc@nvidia.com>
28cd0dc to
d731266
Compare
Signed-off-by: Hougant Chen <hougantc@nvidia.com>
This reverts commit 6061ee6.
Description
Allow live OVXR teleoperation to place physics and rendering on different GPUs, with explicit scene-publication placement. This optional path supports GPU-heavy workloads; basic single-GPU and CPU-physics teleoperation remain available.
--deviceselects physics,--ovrtx_active_cuda_gpusselects rendering and--geometry_publication_deviceselects transfer destinations. The latter two require live--ovxr; MCAP replay does not expose them.publication_buffers.pycopies foreign-GPU rigid transforms and deformable points into reusable destination buffers. It retains producer storage and exact streams until consumption, and drains pending work before failure/close cleanup.No automatic CPU staging is enabled. PCIe peer transfers require synchronized value-integrity checks and a supported IOMMU configuration; host preparation belongs to an administrator with idle GPUs. Application startup does not change drivers, IOMMU or host services. Physics fidelity and pacing defaults are unchanged.
See GPU placement and peer-transfer requirements. The PR also versions release/source-build setup guides, pinning the tested Lab
592b218/ Capture95ba799runtime pair without committing developer-local wheel paths or provider overrides.Builds on #8790. This draft targets main and includes its predecessors; review the incremental diff.
Dependencies: compatible Capture OVXR packages and the provider upgrade in #8627. Native-provider defaults are unchanged; use the source-build setup until matching packages and metadata are released.
Type of change
Testing
Results below cover the cumulative stack, rebased on main
fa569a5501a36051ac855769f11f8c76f0ac0194with Capture95ba799fca650dd003fb5a2400f9ed4b1ed3cb2d. They are not independent full-suite results for each PR. Subsequent source changes preserve the tested executable Python syntax.Formatting, changelog, incremental warning-as-error Sphinx and the kitless dependency check passed. The clean Sphinx check was blocked by external-inventory DNS failures.
Open limits: cold attach over 300 seconds, intermittent GR1T2 first-Play/Reset recovery and SO101 cube retention remain unresolved; full task completion is not qualified. The separate Kit SDK audit has eight metadata mismatches. Full-repository, hosted-CI and arm64 coverage are not claimed; the incomplete Claude follow-up does not establish an exhaustive concurrency review.
The scope corrections preserve all final runtime Python files. Eight camera tests, an intermediate G1 camera-resolution check, exact reconstruction of the prepared dependency metadata, resolver/locked-install dry runs and a 274-package dependency check pass. No runtime or performance matrix was repeated. NumPy/provider overrides remain explicit local premerge preparation.
Performance samples
Matched warm-cache IWER runs used the same client, flags and fixed motion inputs. Median decoded-video rates:
Sampled dropped frames were zero. An earlier unseeded GR1 CPU decrease of 5.873% did not reproduce with fixed inputs; a final representative run after Kit/import corrections measured 51.620 versus 50.793 frames/s. These bounded samples show no reproduced regression in the matched cases, not statistical equivalence, headset FPS or physics-rate qualification.
Checklist
pre-commitchecks withuv run isaaclab --formatsource/<pkg>/changelog.d/for every touched package (do not editCHANGELOG.rstor bump package versions — CI handles that)CONTRIBUTORS.mdor my name already exists thereThe warnings checkbox remains open: dependency warnings and the separate Kit metadata audit are unresolved.