Hello,
Gábor asked me to create a sample project in 5.6 where the high GPU Scene Update cost can be reproduced, and at the same time a high Compute GPU Sim cost. I created a pseudo setup to roughly use similar features and options in Niagara that we use in our game.
In our project, we often use emitters that have many low poly meshes and we stack multiple mesh renderers into one emitter. Using the visibility parameter, we randomly choose between them per particle. We also use multiple meshes in one mesh renderer module and the mesh ID parameter, but unfortunately this cannot be reproduced in Unreal 5.6 because the engine crashes when trying to add another field to the static mesh array in the mesh renderer module.
On a machine with an RTX 2070, I performed a Trace Capture and a Pix Capture in the editor, and I was able to reproduce a significant GPU Scene Update cost. [Image Removed][Image Removed] I also noticed the more Mesh Renders are active the higher cost of GPU Scene Update. I placed 60 Niagara System actors using the same system that contains 5 emitters, only one has Mesh Renderers but I added 6 of them in one emitter. In total, 300 active GPU emitters at the same time.
As for Niagara GPU Simulation, I specifically used only GPU Emitters in this test and added specific modules in the emitters to force a high number of Data Interfaces. Unreal shows that I’m using 7 DIs.
In this test, I was also able to get a high Compute GPU Sim cost, although I noticed it’s relatively low based on my experience. 300 emitters took about 1.5 ms.
Interestingly, this value appears when looking at the Trace in Insight, but in the Pix Capture, it’s different. In Pix it’s much less [Image Removed]
To investigate further, I did a test build in our game where I recreated exactly the same setup and got an average of 6 ms for GPU Sim.
To make sure, I repeated the test on the vanilla version 5.3.2 available on EGL. Using exactly the same test case, I was able to reproduce the increased Compute GPU Sim cost. I also noticed the significant difference in cost of GPU Scene between 5.3.2 and 5.6
To summarize, I have a sample projects where you can observe a high GPU Scene Update cost by using many Mesh Renderers in one emitter. Attached bellow
The Compute GPU Sim cost and GPU Scene Update differs between versions 5.3.2 and 5.6, and this difference is very noticeable on Nvidia 2000 series cards[Image Removed][Image Removed]