Description
When PhysX Fabric is enabled and /physics/fabricUseGPUInterop=true, PointInstancer children under a moving rigid body render at incorrect positions. The ordinary mesh child of the same rigid body renders correctly, so the rigid-body simulation state appears correct, but the point-instanced children are visually transformed incorrectly.
I encountered this issue when using PointInstancer in IsaacLab, but later I realized that it's because IsaacLab is setting /physics/fabricUseGPUInterop=true, so it's actually IsaacSim's problem. The same bug can be reproduced purely on IsaacSim by enabling fabricUseGPUInterop. Both IsaacSim 5.1.0 and v6.0.0-dev2 are affected.
Minimal examples:
Observed Behavior:
The studs (cylinders) are modeled by a PointInstancer. They are expected to be right upon the lego brick. However, they are actually rendered at a wrong position.
Expected Behavior:
Workaround:
Set /physics/fabricUseGPUInterop=false in Isaac Lab:
carb.settings.get_settings().set_bool("/physics/fabricUseGPUInterop", False)
But this adds GPU-to-CPU copy overhead.
Isaac Sim version
v5.1.0 & v6.0.0-dev2
Operating System (OS)
Ubuntu 26.04 (development branch)
GPU Name
RTX 3080 Ti Mobile
GPU Driver and CUDA versions
Driver 590.48.01, CUDA 13.1
Logs
No response
Additional information
No response
Description
When PhysX Fabric is enabled and
/physics/fabricUseGPUInterop=true, PointInstancer children under a moving rigid body render at incorrect positions. The ordinary mesh child of the same rigid body renders correctly, so the rigid-body simulation state appears correct, but the point-instanced children are visually transformed incorrectly.I encountered this issue when using PointInstancer in IsaacLab, but later I realized that it's because IsaacLab is setting
/physics/fabricUseGPUInterop=true, so it's actually IsaacSim's problem. The same bug can be reproduced purely on IsaacSim by enabling fabricUseGPUInterop. Both IsaacSim 5.1.0 and v6.0.0-dev2 are affected.Minimal examples:
Observed Behavior:
The studs (cylinders) are modeled by a PointInstancer. They are expected to be right upon the lego brick. However, they are actually rendered at a wrong position.
Expected Behavior:
Workaround:
Set
/physics/fabricUseGPUInterop=falsein Isaac Lab:But this adds GPU-to-CPU copy overhead.
Isaac Sim version
v5.1.0 & v6.0.0-dev2
Operating System (OS)
Ubuntu 26.04 (development branch)
GPU Name
RTX 3080 Ti Mobile
GPU Driver and CUDA versions
Driver 590.48.01, CUDA 13.1
Logs
No response
Additional information
No response