Enable synchronous texture streaming for IsaacSim RTX - #6932
Conversation
There was a problem hiding this comment.
Isaac Lab Review Bot
The PR adds one headless Kit default that keeps texture streaming enabled while selecting its synchronous path. The setting is colocated with the existing texture-streaming and asynchronous-rendering controls, and no actionable defect is evidenced by the patch.
- Design and architecture: The change is scoped to
apps/isaaclab.python.headless.kitand aligns the texture resource manager with the headless application's existing synchronous-rendering defaults. Other Kit application configurations remain unchanged, which is a deliberate scope boundary rather than a demonstrated defect. - API: No public Python API, CLI argument, symbol, or configuration dataclass changes. The behavioral compatibility surface is limited to the headless Kit default; texture streaming remains enabled, while its scheduling changes from asynchronous to synchronous.
- Implementation: The new
rtx-transient.resourcemanager.texturestreaming.asyncsetting is placed directly beside the existing texture-streaming enablement and follows the surrounding Kit/TOML syntax. The main non-blocking tradeoff is potentially different texture load-time behavior in the headless application.
No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.
Automated review; human maintainers own approval decisions.
Greptile SummaryThe PR configures the default headless IsaacLab experience to retain texture streaming while disabling its asynchronous mode.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (2): Last reviewed commit: "Disable async texture streaming" | Re-trigger Greptile |
67bc705 to
cc5ed71
Compare
|
question: there are also golden image comparison tests in strangely, the updated goldens failed validation: https://github.com/isaac-sim/IsaacLab/actions/runs/31102324567/job/92630269451#step:4:528 |
The scope of the PR will only affect sensor renders using Kit RTX. The visualizer part is not touched. |
|
Synchronous texture streaming determinism fix landed on Kit 110.3.0-356733 , but we pin Isaac Sim 6.1.0-alpha.38 which is using Kit 110.3.0-351613 . My MR is now blocked until the Isaac Sim issue is fixed and we pin newer Isaac Sim and thus newer Kit. |
Texture streaming is still enabled, but we will use synchronous texture streaming.
- Refresh isaacsim_rtx / default_renderer goldens for cartpole, Franka cloth, Lift-Kuka, Shadow Hand, and registered camera tasks. - Add Reorient Cube Shadow goldens. - Drop the unused scene-partition fixture from the registered-tasks rendering test due to NVBUG#6566677.
c6cc350 to
bf9b44b
Compare
Description
Disable async texture streaming in the headless Kit app while keeping texture streaming itself enabled:
Motivation: With async texture streaming enabled, Isaac RTX camera renders could vary across runs, which breaks golden-image / pixel-diff rendering correctness tests. Synchronous texture streaming restores stable pixel output.
Scope:
apps/isaaclab.python.headless.kitonly. Texture streaming remains on; only the async path is turned off.Type of change
Validation
Pixel determinism
Re-ran Isaac RTX rendering correctness tests (
lift_kuka_hetero,lift_kuka_homo,shadow_hand; AOVs:rgb/rgba/albedo/simple_shading_diffuse_mdl/simple_shading_full_mdl) 20 times after this change.N=20, std=0)This confirms the setting restores deterministic Isaac RTX render output for these tests.
Performance / memory impact
Dexsuite runtime benchmark on
Isaac-Lift-KukaAllegro-Camera(newton_mjwarp+isaacsim_rtx, seed42, 1000 measured iterations) before (develop/62e1433e) vs after (this change).Δ% =
(after − before) / before × 100. Sign meaning by metric:+means−means+)−)−)Takeaways:
Machine:
CPU: AMD Ryzen Threadripper PRO 5975WX (32 cores / 64 threads)
GPU: NVIDIA RTX A6000.
RAM: 251 GB (~251.5 GiB)
OS: Ubuntu 22.04
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