Jump to content
BRPVP

Profiling Data says something is wrong with PhysX

Recommended Posts

The player have 60 fps, and sunddenly it falls to 10.

 

He was able to save profiling data when on 10 fps. This is the profiling TXT file https://pastebin.com/edCxbhJd

 

I loaded this TXT in my profiling Arma 3 to check it, and here a shot of the PhysX part:

 

g793Aav.png

 

Seens something is wrong with PhysX. Can anyone help?

 

Thanks.

Share this post


Link to post
Share on other sites

why wrong? PX is complex computations - how many vehicles and objects (non terrain, non simple) did you have?

  • Thanks 1

Share this post


Link to post
Share on other sites

Lots of static objects, all arround the map, but most are simple.

Also many vehicles, all arround the map, not only in one place.

The problem is the time it take to compute those px things, it's too much.

All is ok and sunddenly fps fall to 10 or 5. If player relogs then fps back to normal again.

Happens with just some players.

 

I asked hin to update his PhysX, but he is already using last version.

He is trying now to put PhysX calculation on CPU to see what happens.

 

Some players have that, it's a Chinese server. I'm about to receive some more profiling datas.

Share this post


Link to post
Share on other sites

The fps is 103 in the image because it's my computer, i got the TXT file and loaded it in my computer with "paste all". The real player was having 10 fps.

Share this post


Link to post
Share on other sites

if you turn objects into simple objects, or disable their simulation, you should see fps improvements 

  • Like 1

Share this post


Link to post
Share on other sites

A player got this when the problem happened:

 

* Thread Main Thread
total; 0.03745; 133.16768;""
 evwfGet; 0.03866; 0.00200;""
 winMs; 0.04814; 0.12449;""
 dlcSim; 0.26805; 0.00011;""
 input; 0.29877; 0.01067;""
 wSimu; 0.31291; 132.88429;""
  memWD; 0.31341; 0.00401;""
  evGet; 0.34330; 0.00001;""
  memFrA; 0.36319; 0.00033;""
  vmVer; 0.36588; 0.00429;""
  memFr; 0.40148; 0.00037;""
  evGet; 0.41883; 0.00001;""
  MFDManager; 0.42401; 0.99357;""
  wDisp; 1.41796; 0.02677;""
  gbFrm; 1.44534; 0.01263;""
  rtSim; 1.46001; 3.49398;""
  netwT; 4.96128; 1.90326;""
  wSimA; 6.88166; 83.20762;""
   PhsXF; 6.88183; 56.98078;""
    EpeFR; 6.88202; 56.98037;""
     epeCR; 63.85886; 0.00301;""
      EpeCR; 63.86117; 0.00011;""

 

You can see wSimu/wSimA/PhsXF/EpeFR is lasting for 56.9 ms.

What is this EpeFR?

 

I'm not sure if i made me understand. Fps is 60, and suddenly it falls to 5 or 10 and stay like that forever until the player relog.

Share this post


Link to post
Share on other sites

 

On 11/17/2019 at 12:16 PM, .kju said:

if you turn objects into simple objects, or disable their simulation, you should see fps improvements 

 

I already do that, fps is good on server and clients:

All objects that don't require interaction (wall, floor,ceil, most of it) are created as simple objects.

All vehicles that don't have a player interacting have enableSimulationGlobal set to false server side.

  • Thanks 1

Share this post


Link to post
Share on other sites
On 11/18/2019 at 7:48 PM, BRPVP said:

What is this EpeFR?

physics, checking which objects contact/penetrate which other objects..

Arma is doing physx calculation in seperate thread, that point that takes 50+ms there is "wait for physx calculation thread to be done with its work, and get the results" so for some reason, that takes a veeery long time.

I assume you have some blob of physx objects flapping around somewhere on your map.

I had a similar bug once, was about 200 dead ragdolling units at 0,0,0 coords flopping around in eachother in a huge blob. After deleting them fps went from ~10 to 50.

 

in the profiling output you should be able to see that instantly if you look at it in the gui and see the long "px3" scope running in a seperate thread. The scopes in that thread may give you a better idea about whats causing the issue.

 

Actually I wrote this before I scrolled up, you can already see it in your screenshot above. Dig down into the px3 scopes and see if it has any diagnostic info about what is taking so long.

 

Quote

DynB 2160

dynamic bodies maybe? 2160 sounds like alot.

What is inside that dark blue px3sim scope from your screenshot?

 

On 11/16/2019 at 3:20 PM, BRPVP said:

I asked hin to update his PhysX, but he is already using last version.

He is trying now to put PhysX calculation on CPU to see what happens.

won't make any difference, Arma is using its own physx version, and it never does physx calculation on gpu, so moving to cpu does nothing as its already on cpu.

Share this post


Link to post
Share on other sites
5 hours ago, Dedmen said:

I had a similar bug once, was about 200 dead ragdolling units at 0,0,0 coords flopping around in eachother in a huge blob. After deleting them fps went from ~10 to 50.

 

I will try to use allDead command to detect that.

 

5 hours ago, Dedmen said:

dynamic bodies maybe? 2160 sounds like alot.

What is inside that dark blue px3sim scope from your screenshot?

 

6lzNcKI.png

Share this post


Link to post
Share on other sites
14 minutes ago, BRPVP said:

What is inside that dark blue px3sim scope from your screenshot?

Aw thats.. disappointing. I  hoped for more data 😕

I don't know what DynB and the others mean, probably won't have time this week to find out. Maybe they hold the answer as to why its so slow.

Share this post


Link to post
Share on other sites

Oh, sad.

No problem, thanks for your help.

 

Just one more shot, this px3sim have only one memAI inside:

ejqyE0E.png

 

 

Share this post


Link to post
Share on other sites
On 11/20/2019 at 8:09 AM, Dedmen said:

I had a similar bug once, was about 200 dead ragdolling units at 0,0,0 coords flopping around in eachother in a huge blob. After deleting them fps went from ~10 to 50.

 

Dedmen,

What created this dead ragdolls on [0,0,0]? Was something you did? Can i use this code to try to solve the problem?

And it is [0,0,0] ASL, AGL or ATL?

 

{
	if (!alive _x) then {
		deleteVehicle _x;
	};
} forEach ([0,0,0] nearOBjects ["CaManBase",500]);

Or

{
	if (!alive _x) then {
		deleteVehicle _x;
	};
} forEach (ASLToAGL [0,0,0] nearOBjects ["CaManBase",500]);

Thanks!

 

 

Share this post


Link to post
Share on other sites
2 hours ago, BRPVP said:

What created this dead ragdolls on [0,0,0]?

no idea. I just deleted them.

I saw them wobbling there in zeus, not sure what the real height was. Not sure if they are CAManBase

  • Thanks 1

Share this post


Link to post
Share on other sites
On 12/15/2019 at 8:44 AM, Dedmen said:

no idea. I just deleted them.

I saw them wobbling there in zeus, not sure what the real height was. Not sure if they are CAManBase

How you deleted then?

Share this post


Link to post
Share on other sites
On 12/16/2019 at 7:16 PM, BRPVP said:

How you deleted then?

Zeus I think. Or maybe just some script with deleteVehicle, not sure anymore that was years ago.

  • Thanks 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×