Lower performance in 2.9


photo

Recommended Posts

We tried to run geekbench on PC with perf issue before and after reinstall (reinstall are clean updated Windows without anything).

Before: singlecore score:  932   multi core:  3664   CUDA score: 26511 (build 1809)

After:  singlecore: 1020  multicore: 3903 cuda: 31855 (build 1903)

So there are cca 10 percent better CPU/GPU results. But Microsoft claims, that 1903 has cca 5 percent improvement in single thread performance over 1809, which makes overall difference only 5 percent (https://windowsreport.com/linux-windows-10-multi-threaded-performance/). Also clean PC without anything is not realistic installation. My guess is, that after installation of typical SW, it will go little bit down, so it can easily eat that 5 percent gain of clean installation. Benchmark clearly shows, that there is no multithreading issue, multicore performance gain is proportional to single core gain.

Unigine FPS drop is like cca 50 percent (26 vs 42 FPS). So it absolutelly does not correspond to benchmark results. Typically 10 percent of singlecore performance will add +-5-8 percent  FPS. If this was general issue, geekbench in mutithread would have similar perf drop.

There is also question, in which cases that new multithreading modifications helps? Even on computers where we dont have perf issue and we have latest CPU (8 core Ryzen) is performance little bit lower (1-2FPS) in compare to 2.8.

Edited by demostenes
Link to post
  • 2 weeks later...

I have another observation. Performance drop on 2.9 is not consistent. Sometimes is just enough to fly camera around, return back to reference place and performance is +- OK (drop only 10 percent instead of 40-50). Then you fly around again and performance is bad. Quite random, but reproducable. On 2.8 it is always consistent, performance is the same.

So I ve continued testing. I had 25 FPS. I turned off all scene nodes including terrain, wait cca 4 seconds until FPS were maxed, turned on again and I had 40 FPS. I reloaded the world and without doing anything I was back on bad performance. Just turn nodes on/off and I have good performance for some time, until fly around little bit (cca 5-20 seconds of fly, it absolutelly does not matter where I fly,  it is enough to just fly around in the same circle). I ve made screen of performance profiles before and after on/off. All values (dips, triangels...) are almost same. This is reproducable in 100 percent of cases.

Based on that, I ve tried other test. I tried to turn nodes selectively, but impact on FPS was zero (I turned off node with 1m of polygons and 500 dips and impact on FPS was 0), only turning off everything maxed FPS. But when FPS were OK, turning off individual nodes had expected positive impact on performance. I ve tried this several more times and only in cca 1/20 of cases turning off of major node had expected positive performance impact (after cca 4 seconds). Then I disabled terrain, and everything started to work as expected, so after turning off major node, FPS went instantly up. Also there were no performance issues and no performance loss over time. Performance was 2.8 like.

There is definitelly some problem with background "cleaning" and it is caused by something related to terrain. I deleted all clutters, but it didnt help, so it seems, existence of clutters in the scene have nothing to do with it.

So what are next steps? Benchmark clearly shows, that there is no global multithreading performance problem as suggested before. In our case this is not rare issue, majority of our computers have it, because we dont have dedicated "clean" workstations for Unigine. We also cant expect, that any customer will.

Whatever is going inside of "older" windows installation affects only Unigine. Even on "old" installation it is possible to have good performance for some short time, as described above.

Reinstalling workstation is only temporarary fix, because one day piece of SW (or update) or whatever is causing it will be installed again. And nobody can afford telling customers please reinstall your PC to have proper performance. This would probably repel majority of potencial customers.

 

 

 

before.jpg

after.jpg

Edited by demostenes
Link to post

For now, the main obstacle in finding solution to this problem is that we still unable to reproduce this on our side. It's not that we tested this on clean reinstalled systems, we have tried this on multiple setups, even those that been in use for a few years without cleanup/reinstall, which makes us think that the cause of such behavior is in specific software or some complex of system settings/caches.

Concerning geekbech results, it's not quite right to compare differences in numbers between two softwares, since that it's possible to utilize CPU resources on different levels. e.g. in our engine, frame time depends on CPU calculations non-linearly, cause rendering of frame requires consecutive calculations on both CPU and GPU, and both can be bottleneck in this process. 

We will try to retest this issue based on your observations concerning it might be somehow terrain-related. But finding what causes this drop in environment is still remains the key to finding out what causes this in engine 

Link to post
56 minutes ago, vvvaseckiy said:

 But finding what causes this drop in environment is still remains the key to finding out what causes this in engine 

Did you make any changes in 2.9 with possible impact to terrain? It seems when terrain is active, Unigine looses ability to clean CPU "resources". If I turn terrain off, I have no performance degradation during time.

Link to post

Yes there was changes in 2.9 that affected TerrainGlobal. In total  with the commit we identified earlier it might help discovering the issue, i'll pass this info to our development team, but it's still unknown what part of environment causes such behavior in engine, so it remains hard to debug this issue as it not reproducible on our side

Thanks

Link to post
  • 2 months later...

I ve made quick test on 2.10 and it seems this issue is gone. Also what is interesting, in the scene without terrain and cca 5m polygons in various objects, avg FPS are now 3x (!!!!!) higher - 170 instead of 60. This is number I would expect from 1080TI. I dont know what you changed, but it seems you fixed some serious issues. Good job.

Edited by demostenes
  • Like 1
Link to post

Hi,

the new optimization is wonderful.

I try very complex structure of nodes and in 2.9 i get 32 fps, in 2.10 i get 69 fps both as node reference in editor.

But when i do edit on node reference i get 110 fps.

Can you explain it, why i get twice fps when i edit node reference?

Thanks

Honya

Link to post