Hello,
Recently we’ve enabled Clustered Deferred Shading for our project, after doing A/B Test it gave us some performance improvement. Though in our project we don’t use Nanite, so we have r.Nanite=0. Then we found out, that Nanite still creates Streaming Pool, which we could decrease to zero, but we tried to use r.Nanite.ProjectEnabled=0 and Clustered Deferred stopped working.
While we were looking for an issue behind that, it seems that:
ShouldUseClusteredDeferredShading checks DoesPlatformSupportVirtualShadowMaps
DoesPlatformSupportVirtualShadowMaps checks DoesPlatformSupportNanite
DoesPlatformSupportNanite checks if Nanite is Project Enabled.
As result, Clustered Deferred Shading cannot work without Nanite Project Enabled, nor VSM. To me that makes no sense: DoesPlatformSupport should mean if platform is capable to use that feature, e.g. needed Shader Model, Feature level, directx vs opengles etc.
DoesPlatformSupportNanite also has bool bCheckForProjectSetting as argument, which has been never used in function code.
I think this should be fixed: either bCheckForProjectSetting properly used, or DoesPlatformSupportNanite shall not check the Nanite Project Enabled cvar.
Please check the referenced question: [Cannot use Virtual Shadow Maps in non-Nanite [Content removed]
p.s. We don’t use Nanite since we would not benefit from it too much - game is mostly top-down so player either sees LOD0, or no object at all. We don’t use VSM either, because of the moving sun/moon.
[Attachment Removed]