- Some refactoring of LocalVertexFactory shader code to accommodate new spline mesh changes as well as to clean it up a little.
- Split primitive flags in the GPU Scene primitive data relating to visibility out into its own to facilitate adding another flag that wouldn't fit into a single DWORD.
#rb ola.olsson
[CL 25853575 by jamie hayes in ue5-main branch]
* Cluster are not computed based on k first curve to avoid expensive cluster bound computation.
#rb none
#jira none
#preflight 64711df3c109725039dbdce5
[CL 25673786 by Charles deRousiers in ue5-main branch]
- Clamps the gpu-scene instance buffer size to the max supported instance ID (MAX_INSTANCE_ID, 16M at present)
- Overflowing ID's will just result in OOB buffer accesses on the GPU which is tolerated and rendering will be undefined.
- Added logging + on-screen message to surface the issue.
#jira UE-182255
#rb jamie.hayes
#preflight 646f7adf50786bb5ba8067b1
[CL 25622221 by Ola Olsson in ue5-main branch]
- glint can be enabled/disabled per platofm still.
- Glints are enabled by default now.
- Simplified the complexspecial path defines to only have one.
#rb none
#preflight none
#fyi charles.derousiers
[CL 25600737 by Sebastien Hillaire in ue5-main branch]
- Move primitive data stride to SceneDefinitions header so we don't have to change it in 3 places in code.
- Move FPrimitiveSceneShaderData to its own header to (eventually) eliminate dependencies that adversely affect compile time.
- Deprecate scatter upload buffer support for texture targets and prepare to clean up hacks that were previously done for the sake of GPU Scene that are no longer needed.
#rb ola.olsson
#preflight 644fe4750e33f2d51d787e71
[CL 25285293 by jamie hayes in ue5-main branch]
- Also moved FPrimitiveUniformShaderParametersBuilder to its own header to cut down rebuilding when changing scene & nanite definitions.
#rb jamie.hayes
#preflight 644919d41c2846595cfdbf28
[CL 25199110 by Ola Olsson in ue5-main branch]
The feature is disabled by default, and may be considered Beta for the current release.
- Added support for passing an FSceneInstanceCullingQuery to Nanite::IRenderer::DrawGeometry
- Added some more interface (inline) functions to Nanite::IRenderer to help guide the user.
- Implemented FInstanceHierarchyCull_CS to handle the hierarchy culling in the Nanite culling passes.
- Added FInstanceHierarchyAppendUncullable_CS to append "uncullable" instances
- Adapted FCompactViewsVSM_CS to handle view group ranges, use with the new hierarchy
- Moved VirtualShadowMapViews from FSortedShadowMaps to FShadowSceneRenderer (public -> private)
#rb brian.karis,jamie.hayes
#jira UE-147060
#preflight 6448d4961150e908d01f0049
[CL 25194831 by Ola Olsson in ue5-main branch]
- Support keeping pages that are not requested in a given frame, disabled to start but will be enabled soon. r.Shadow.Virtual.Cache.KeepOnlyRequestedPages
- Support LRU allocation of new pages. Only particularly meaningful with persistent allocations. Also disabled to start. r.Shadow.Virtual.Cache.AllocateViaLRU
- Lots of cleanup and refactoring of page allocation passes and shaders.
- Move page marking shaders into their own file as they are relatively independent from the allocation/caching and have dependencies on other systems (hair, water, etc)
- Clean up various cases of cache enabled/available/etc.
- Some minor cleanup of invalidations in prep for future work
#rb ola.olsson
#jira UE-147454
#preflight 642cad58da7f9583709d3172
[CL 24932187 by andrew lauritzen in ue5-main branch]