Question related to Batching/Draw calls and Niagara

Hello there!

From what I can see in 5.5.4-676246, and pretty much since I have been doing GPU captures, there is no batching of any kind on our Niagara System. I just tried on with the Fountain regular (6 on the left) and Fountain Lightweight emitter (6 on the right) templates, both using default sprite material (tried Additive and Translucent blending mode) and tried to do a PIX GPU capture and it’s confirming that each 12 systems (each containing a single emitter and a single sprite renderer) they are generating a batch each. The only difference I see is in the name of the batch, DrawIndexedInstancedfor regular emitter and ExecuteIndirect for the lightweight versions (see attached screenshot).

From the documentation: https://morevfxacademy.com/complete\-guide\-to\-niagara\-vfx\-optimization\-in\-unreal\-engine/ it seems like it could be possible to do so. Is this information valid if so, is it under specific conditions or platforms? Or maybe I am missing something else?

Thanks in advance for the information

Steps to Reproduce

  1. Create a Niagara System using the Fountain template
  2. Place a few system in a new map
  3. Using Quick Launch, select an XSX
  4. Once Launched, use PIX do do captures

Hey Gabriel,

Hope you are well.

Unfortunately that article you linked has a lot of incorrect information.

There is no auto batching for Niagara as we use dynamic draws, the engine only supports auto batching static draws.

You have to take into consideration that batching translucent draws can result in sorting issues without an OIT solution in place.

One option is to use data channels, but that comes with some caveats also.

We have talked about having a batched sprite renderer, for example, this would be more limited in what it can render, but would allow for multiple different sources to push data into it. But we don’t plan to add this soon.

Thanks,

Stu

Hello Stu! I’m doing well thanks and I hope you too. Thanks for much for the confirmation on this. This us exactly what I was expecting but this article made me doubt. :sweat_smile: We can consider this ticket closed I guess then. Have a great day!