GPU driven culling for non-nanite geometry

Hello,

Do you have non-nanite GPU driven rendering on your roadmap in the near future?

Currently all non-nanite geometry goes through the old CPU rendering pipeline, so having a lot of it (for example translucent) can cause a CPU bottleneck easily.

I had an idea recently about how this can be tackled and, at least at a high level, it seems to me like most puzzle pieces for it are already implemented, they just need to be glued together.

Basically, take the usual Nanite mesh with its clusters, but instead of rasterizing to the VisBuffer first, render directly into the GBuffer for the base pass or the final color buffer for translucency. I think this would require using the more traditional HW raster with mesh shaders (which Nanite already supports) and using HW interpolation for vertex attributes, which would be new for Nanite.

Of course, this loses the benefits of separating rasterization from shading, but it would potentially still be a big win for passes that just don’t support visibility rendering, like anything non-opaque/masked. It might even make sense to use this for masked or WPO materials as well, because that can be expensive with Nanite right now.

This is essentially what other engines do like Assassin’s Creed: Shadows or Alan Wake 2. They use meshlets for all geometry and do GPU driven culling. AC: Shadows even has it’s own Nanite-like micropoly rasterizer, but they only use it for static opaque geometry, no WPO.

I can’t be the only one who thought of this, so I’m wondering, are you already working on something like that?

There’s an old thread (from 2023) where someone mentioned having translucency support for Nanite on your roadmap. Is that how it would work or do you have a more interesting solution to this problem?

Thank you!

[Attachment Removed]

Hi Sergei,

There are no plans in the roadmap to provide non-Nanite GPU-driven rendering. I can tell you, though, that we are actively working on adding support for rendering non-opaque Nanite meshes, but the changes that need to be made are incredibly non-trivial, so we don’t yet know which design we’ll end up settling on. You should consider this feature over making your own engine changes once it’s out. We hope to publicly announce more details in the coming months.

[Attachment Removed]