- Uses the InstanceCullingLoadBalancer to pre-distribute the work on the CPU to ensure even load.
- Make instance culling use the instance data offset in MDC instead of translating primitive IDs.
- Track single-instance draws separately from instanced to optimize handling (disable culling for single-instance primitives).
#rb Graham.wihlidal,andrew.lauritzen
#fyi dmitriy.dyomin
#preflight 60d0eafa2ab2180001269160
[CL 16733827 by Ola Olsson in ue5-main branch]
- Intermediate step towards making renderer instance-first.
- Enables simplification of instance culling setup.
#rb Krzysztof.Narkowicz
[CL 16729395 by Ola Olsson in ue5-main branch]
- provides easier iteration on related code, plus sets the stage for abstraction for desktop/mobile version.
#preflight 60bf64925bc96f0001ba7fe1
[CL 16587267 by Ola Olsson in ue5-main branch]
- Enables overlapping batched and non-batched instance culling (needed for batching work).
- Removes some explicit transitions & minor cleanup.
- Added tracking the required number of instances (fixes non-nanite VSM for large ISMs)
#rb graham.wihlidal,jian.ru,yujiang.wang,zach.bethel
#preflight 60b73f38107dc600017d931b
[CL 16544217 by Ola Olsson in ue5-main branch]
This avoids a long stall on mesh draw command recording tasks at the end of the frame and saves about .1 ms of work off the render thread.
#jira UE-114622
#rb luke.thatcher
[CL 16419616 by zach bethel in ue5-main branch]
- added explicit stereo mode to instance culling context.
- fixed the stencil setup pass parameter to include the InstancedView (lost in RDG conversion probably)
- restored the hack to run the stereo stencil pass twice (needed to make FSimpleMeshDrawCommandPass support setting up stereo)
#rb andrew.lauritzen,steve.smith
[FYI] jules.blok
#ROBOMERGE-OWNER: ola.olsson
#ROBOMERGE-AUTHOR: ola.olsson
#ROBOMERGE-SOURCE: CL 15739174 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)
#ROBOMERGE-CONFLICT from-shelf
[CL 15739606 by ola olsson in ue5-main branch]
- added a path to propagate and cache whether material modifies position (WPO) to enable invalidating cached pages (touches whole mesh command pipeline).
- added pixel shader verision of page copying & clearing.
- also added flag for whether cached the mesh draw command supports primitive id (which enables checing this earlier).
#rb andrew.lauritzen,brian.karis,graham.wihlidal,Krzysztof.Narkowicz
#ROBOMERGE-SOURCE: CL 15436539 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15441336 by ola olsson in ue5-main branch]
- dynamic primitive collectors now auto-commit when uploading dynamic primitives, simplifying use.
- fixed shadow stencil passes to properly use GPU-Scene instance culling (and instancing), now using FSimpleMeshDrawCommandPass
- Also move translucency shadow rendering to FSimpleMeshDrawCommandPass
#jira UE-108032
#rb Krzysztof.Narkowicz
#ROBOMERGE-SOURCE: CL 15432971 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15441234 by ola olsson in ue5-main branch]
- Also stripped out instance culling manager and some other superseded code.
#rb rune.stubbe
#ROBOMERGE-SOURCE: CL 15314346 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15314386 by ola olsson in ue5-main branch]
- Added dynamic switches in addition to the ifdef.
- Added ifdef to disable workaround for legacy primitives for cube shadow when not used (enabled with GPU-Scene)
- Fixed some references to PrimitiveId in hair strand shaders
#rb graham.wihlidal
#fyi charles.derousiers,andrew.lauritzen
[CL 15185037 by Ola Olsson in ue5-main branch]
#author ola.olsson
#ushell-cherrypick of 15144226 by swarm
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe
[CL 15150027 by graham wihlidal in ue5-main branch]
- LocalVertexFactory can fetch instance data from GPU-Scene
- regular Shadow map rendering can use instance culling view index (route to cube face)
- HISM/ISM/SM registers instance data
- Support for overriding mesh draw commands with indirect dispatch
#rb graham.wihlidal
[CL 15135051 by Ola Olsson in ue5-main branch]
==
* Added instance offset and count to primitive data, along with GetPrimitiveUniformShaderParameters() diffs
* Remaining FInstanceCullingManager& hooks through functions
* Various todo comments to address later
* Calls to (disabled for now) BuildRenderCommands()
* Mutability of FViewInfo in some spots
* Additional instance culling draw params in a few places
* EVertexInputStreamType cleanup
* UseVirtualShadowMaps() feature capability helper function
#authors ola.olsson, graham.wihlidal
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe
[CL 15092149 by graham wihlidal in ue5-main branch]