Skip to content

PointInstancer rendered with incorrect transforms when fabricUseGPUInterop=true #585

@yushijinhun

Description

@yushijinhun

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.

Image

Expected Behavior:

Image

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

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions