Async sim + Forcefields results in cascade of errors

Using any of the Physics Demo Scenes that utilize the set_physics_scene_asyncsimrender and the Forcefield extension will result in a plethora of errors before the simulation is terminated. To reproduce just place a Forcefield into any of the Demo Scenes that uses the asyncsimrender and hit play.

This is just some of the errors. Most repeat:

2023-08-02 03:20:24 [92,236ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Overlapping API read and write call detected during physx::NpRigidActorTemplate<class physx::PxRigidDynamic>::getWorldBounds from thread 18968! Note that read operations to the SDK must not be overlapped with write calls, else the resulting behavior is undefined.
2023-08-02 03:20:24 [92,237ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: Concurrent API write call or overlapping API read and write call detected during physx::NpScene::fetchResults from thread 14456! Note that write operations to the SDK must be sequential, i.e., no overlap with other write or read calls, else the resulting behavior is undefined. Also note that API writes during a callback function are not permitted.
2023-08-02 03:20:24 [92,240ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxRigidBody::getAngularVelocity() not allowed while simulation is running (except during PxScene::collide()).
2023-08-02 03:20:24 [92,240ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxRigidDynamic::getGlobalPose() not allowed while simulation is running (except during PxScene::collide()).
2023-08-02 03:20:24 [92,240ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxRigidBody::getAngularVelocity() not allowed while simulation is running (except during PxScene::collide()).
2023-08-02 03:20:24 [92,240ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxRigidDynamic::getGlobalPose() not allowed while simulation is running (except during PxScene::collide()).
2023-08-02 03:20:24 [92,241ms] [Warning] [omni.kit.notification_manager.manager] PhysX error: PxRigidBody::getAngularVelocity() not allowed while simulation is running (except during PxScene::collide()).
2023-08-02 03:20:31 [98,849ms] [Error] [omni.physxui.scripts.extension] PhysX has reported too many errors, simulation has been stopped.```

Hi,
thanks for reporting, the async sim is not working fully with all scenarios especially if you need to interact with the scene.
We are currently trying to put together requirements for more flexible update pipeline that would resolve this, though no fixed plans yet.
Will create internal jira ticket to see if we can fix it more easily.
Thanks for reporing
Ales

1 Like