Subpar Performance of Volumetric Translucent Shadows & Arbitrary Constraints

Volumetric Translucent Shadows (VTSs) come with an arbitrary constraint that prevents games from achieving the highest kind of VFX standard within a reasonable performance budget:

Lots of shadow casting particle systems have an unacceptable GPU cost, while a single particle system with the same number of particles has near-zero cost!

Here is a single system with 5000 particles casting VTSs:

It runs great:

Here are 500 systems each with just 1 particle casting VTSs:

It runs at an unacceptable cost:

While the same scene with VTSs disabled is:

For control purposes (no particle systems):

So why is this really bad? Why not just use a single system with all my particles?
When I need to create an effect at runtime (say a bullet impact effect, which gets spammed in a multiplayer match), I am forced to spawn a single particle system. It’s a matter of game context and scope. This means that just a couple of impact effects will quickly gobble up all of my ms budget!

Now we’ve seen that I can get 5000 shadow casting particles in my scene at negligible cost, so what we’re experiencing is an arbitrary constraint of the engine, which can be solved with alternate designs, which is why I’m making this post.

Epic, please find a way to batch sprites of separate particle systems to fix this constraint! This is exactly the type of arbitrary constraint that can diminish a game’s VFX standard as a whole!

Thank you

(All captured in UE5’s latest release branch)

RenderDoc shows that there’s a separate pass (does it have a different term?) for each particle system, with no evident batching going on