Anyway to increase PhysX performance in Create?

This is related to this topic here : PhysX performance in Omniverse

I have a scene with ~150 articulated rigid bodies and the FPS is around 10 (not 107 as in the picture, because it has been paused).

I tested the scene on a dual RTX2080 and a single RTX3070 and get the same amount of FPS.

I want to check the “enabling omni.physx.flatcache extension” hypothesis, but it seems this is not up to date as of November. Any idea how I should be activating this in Create 2022.3.0?

Thanks in advance

What happens when you try to enable the flatcache extension? This will give you a huge boost in performance.

Hi there, that is what I am trying to do, but I could not find the extension in the launcher, nor could I find any settings for that in the physics settings in create.

Ah, it’s in your extensions inside Create.

Hi there,

Thanks for showing me where to find the flatcache extension. However, no luck increasing FPS with the flatcache extension.

It’s still running around 9 FPS.

I did follow the tips, enabling flatcache BEFORE loading my USD, but it did not change much from when flatcache is disabled.

I tried disabling all joints, in case it would be because the rigid bodies are jointed, but it did not change the low FPS.

ah - so it’s not just a normal RB sim. Can you share the stage with us?

Oh, it is a RB sim, just a lot of RBs and constrained D6joints.
I would be glad to share the files, how do I do that?

cool - drop it here Community - Google Drive

Normally, it should bo on google drive. Name is “polymertest.zip”.

Hope it works.

Yep, works great. I’m getting 30-50fps on my 4080 with flatcache on. 23 with it off. You’re likely hitting a limitation with the GPU. Unfortunately I don’t have a 30 series to test on.

If you drop it in as a payload instead of a layer, I see a decent boost of 10ish fps

That’s is great news. It goes from choppy to interactive framerates.

You will have to excuse my inexperience though, what do you mean by “drop it in as a payload”? (how do I do that in Create?)

I also have found the documentation, but I still don’t see the difference between a layer/asset or a payload. What are the fine differences?

If you are limited by the GPU power, you can also try to let the simulation run on the CPU, on the PhysicsScene try to disable the GPU Dynamics and set the broadphase type to ABP.

Additionally you can run the simulation asynchronously, again on PhysicsScene in the advanced section set the mode to asynchronous.

But it does not sound right, that the perf is so low for that low number of bodies. Will check the perf.

Playing with the asset with CPU simulation and solver set to PGS I can get around 80fps, but the GPU simulation seems too slow, will investigate this.

Hello,

By using the flatcache extension and adding my simulation as a payload in a new scene, I managed to go from 10 to 20 FPS.

I have to precise that it gives me the same frame rate on my PC at work (dual RTX 2080) and my PC at home (eGPU enclosure with an RTX3070).

I will try it on CPU and with the asynchronous option (as soon as I find how to)

Hello again,

I confirm that using CPU instead of GPU boost FPS a lot. The other options (Broadphase and Solver) only change about a dozen FPS.

TGS leads to instability on my side though (sim explodes…)

Yes, I already filled internal Jira to investigate the TGS instability and the GPU perf on this scene. CPU simulation with PGS seems to get best results on this particular scene, but we are investigating why the other options are not viable. Sorry about that.