I came across another difference in behaviour when PhysX is set to use CPU and GPU processors. The scene is as follows…
- One static rigid actor with a box trigger shape.
- One dynamic rigid actor with a sphere shape.
The static rigid actor is moved using setGlobalPose() and blocked/cleared events are detected through the onTrigger() callback. The static rigid actor is rendered green between blocked and cleared events.
Below is the behaviour when PhysX is set to use the CPU solver, which is what I expected:
However, when setting PhysX to use the GPU solver the results can be rather temperamental.
In this case, no blocked event was received. However, sometimes blocked events are received but cleared events are then received prematurely.