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 disables asynchronous texture streaming while retaining texture streaming in the headless Kit experience, then refreshes the affected rendering-test goldens.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains. Important Files Changed
Reviews (3): Last reviewed commit: "Refresh IsaacSim RTX golden images" | 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. |
c6cc350 to
bf9b44b
Compare
bc92de1 to
62088d4
Compare
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.
04d9c9c to
779a4ea
Compare
- Disable object/joint pose randomization in lift Kuka rendering tests so tiled envs no longer show apparent cube-size drift. - Install cartpole, franka_cloth, shadow_hand, and registered-task Isaac Sim RTX golden images generated from CI which runs on L40S.
The seed 42 already gives cross-run consistency. The reset_object pin is unnecessary for that goal. If the cube appears with different size between golden and actual, it could be caused by outdated golden, the right approach should be to refresh the golden instead.
Copy actual images from rendering correctness CI job into the lift_kuka_hetero and lift_kuka_homo golden baselines.
…eanup-dex-part08 Resolved the six shadow_hand Newton golden conflicts in favour of develop. Develop refreshed 99 goldens repo-wide in isaac-sim#6932 (synchronous texture streaming for the IsaacSim RTX renderer); those images carry the current renderer, so they are the correct baseline to carry forward.
The shared in-hand cube changes the rendered Shadow Hand scene, so these goldens do need to move. The earlier refresh generated them on a workstation GPU, whose renderer differs from the CI runner's by more than the comparison gate allows, and develop has since refreshed 99 goldens of its own for the synchronous texture streaming change in isaac-sim#6932. Reset every Shadow Hand golden to develop's current image so the comparison starts from the renderer CI actually runs, and let CI report which ones the cube change moves.
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