The bound SRV issue could cause artifacts elsewhere in similar situations, but I didn't want to add perf overhead or complexity checking for this case everywhere, and decided to do a spot fix. I didn't notice any other obvious cases where we have persistent buffers written to multiple times in a frame, like is done for the scatter upload buffers. Still, it remains something to be alert for in case there are future rendering bugs.
#jira UE-143952
#rnx
#rb kenzo.terelst christopher.waters
#lockdown mihnea.balta
#preflight 6227ef770d5a90e98ea5f87d
#ROBOMERGE-AUTHOR: jason.hoerner
#ROBOMERGE-SOURCE: CL 19322316 in //UE5/Release-5.0/... via CL 19324110
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)
[CL 19348075 by jason hoerner in ue5-main branch]
Add ability to add instance local bounds to dynamic primitive instances
#rb graham.wihlidal, michael.galetzka, ben.ingram
#jira none
#preflight 620bf2b4483ff0ae5ec1fb05
[CL 19000040 by jamie hayes in ue5-main branch]
- Renamed PayloadDataFlags to InstanceFlags since it contains more than Payload related flags
- This is required to be able to identify instances in far field and apply the reference offset when building RT instance buffer in compute shader.
#jira UE-141023, UE-134293
#rb yuriy.odonnell
#lockdown michal.valient
#preflight 61fbc2d802428bcd0d38ddff
#ROBOMERGE-AUTHOR: tiago.costa
#ROBOMERGE-SOURCE: CL 18841826 in //UE5/Release-5.0/... via CL 18841892 via CL 18842251
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18842368 by tiago costa in ue5-main branch]
#jira UE-122078
#rb Andrew.Davidson, Colin.McGinley
#preflight standard build
#ROBOMERGE-AUTHOR: fred.kimberley
#ROBOMERGE-SOURCE: CL 18817999 in //UE5/Release-5.0/... via CL 18818012 via CL 18822871
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)
[CL 18824721 by fred kimberley in ue5-main branch]
Most relevant case is in editor with the "arrow" primitives causing invalidations even though they do not cast shadows.
#rb ola.olsson
#preflight 61f8508168795b2f45879fde
#ROBOMERGE-AUTHOR: andrew.lauritzen
#ROBOMERGE-SOURCE: CL 18798225 in //UE5/Release-5.0/... via CL 18799733 via CL 18800182
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)
[CL 18801231 by andrew lauritzen in ue5-main branch]
Allow fractional tile values for camera matrices, gives better precision when sharing tile between WorldToView and ViewToWorld
#rb none
#jira UE-139078
#preflight 61eaebfd731e3b40889568c9
#ROBOMERGE-AUTHOR: ben.ingram
#ROBOMERGE-SOURCE: CL 18693227 in //UE5/Release-5.0/... via CL 18693266 via CL 18693434
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18693576 by ben ingram in ue5-main branch]
There remain significant visual artifacts in the Virtual Production City map. Lumen has serious issues with multiple views in both single and multi-GPU modes -- I think Lumen data needs to be split per view family to solve this. There is some corrupt geometry in the second view, which may be Nanite or instance rendering related (or something else entirely). To narrow down these issues, I think I'm going to need to extend the DumpGPU feature to be able to do more effective MGPU graphical debugging, since none of PIX, RenderDoc, or NSight work. But at least it doesn't crash now...
Full list of changes:
* CVAR (DC.MultiGPUMode) to override multi-GPU mode for Display Cluster, debug feature copied over from 4.27.
* Barrier and synchronization fixes for RHITransferTextures copied over 4.27. Future work will make RDG handle multi-GPU transitions more seamlessly...
* CVAR (DC.ForceCrossGPUCopy) to force expensive full synchronization and copy of resources cross GPU at the end of each view family render (for debugging). RHITransferTextures upgraded to support copying things besides 2D textures, including other texture resources and buffers.
* AFR temporal fixes from a previous CL (which I moved from my single GPU to multi GPU PC), now improved to avoid some validation asserts in Debug builds (pass inputs not declared, GetParent()->GetRHI() not working because parent not declared to pass).
* Ray tracing (hang): acceleration buffers are branched per GPU, as GPU virtual addresses for resources internally referenced by these buffers may vary per GPU. Needed to add infrastructure to support buffers that duplicate memory per GPU, rather than using driver aliasing of the underlying resource.
* Ray tracing (hang): some buffer bindings weren't using a proper GPU index.
* Nanite (hang): Force initial clear of Nanite.MainAndPostNodesAndClusterBatchesBuffer to run on all GPUs. Solves GPU hang in shadow rendering the first frame (due to shadow rendering running across all GPUs), and later random hangs in view rendering.
* Distance field streaming (assert): GPU readback staging buffers need to be branched per GPU, as the underlying class is single device. GPU readback buffers and textures properly take into account the GPU they were last written on when locking and unlocking. Includes handling an edge case where a write can be queued when a lock is active, due to the deferred way commands are played back in the render graph.
* Distance field streaming (assert): UAV clear wasn't taking into account GPU index.
* GPU scene update needs to run across all GPUs.
* Fix for "DumpGPU" command to avoid assert with MGPU -- arbitrarily pick a GPU (last index) when the GPU mask contains multiple bits. Hope to improve this in the future, but it works.
#rnx
#rb mihnea.balta juan.canada tiago.costa kenzo.terelst
#jira none
#preflight 61ba7edbdc58e54b3318fdf5
#ROBOMERGE-AUTHOR: jason.hoerner
#ROBOMERGE-SOURCE: CL 18472819 in //UE5/Release-5.0/... via CL 18473380
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)
[CL 18473412 by jason hoerner in ue5-release-engine-test branch]
* Updates to the VirtualShadowMapArrayCacheManager to support the invalidation of cache pages upon removal of dynamic primitives
* Various updates and fixes to support writing dynamic primitives' instance scene data and instance payload data from the GPU
* All these changes are needed by a few existing systems that will be using them soon to render via GPU Scene
(NOTE: This change is a resubmit of 18375369 with CIS fixes that caused it to be backed out)
#rb ola.olsson
#preflight 61ae4176353890ce23d75a95
#ROBOMERGE-AUTHOR: jamie.hayes
#ROBOMERGE-SOURCE: CL 18384716 in //UE5/Release-5.0/... via CL 18384780
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)
[CL 18384814 by jamie hayes in ue5-release-engine-test branch]
[FYI] jamie.hayes
Original CL Desc
-----------------------------------------------------------------
* Updates to GPU Scene and the GPUSceneCollector to support handling the upload of multiple instances and instance payload data for dynamic primitives
* Updates to the VirtualShadowMapArrayCacheManager to support the invalidation of cache pages upon removal of dynamic primitives
* Various updates and fixes to support writing dynamic primitives' instance scene data and instance payload data from the GPU
* All these changes are needed by a few existing systems that will be using them soon to render via GPU Scene
#rb ola.olsson
#ROBOMERGE-AUTHOR: aurel.cordonnier
#ROBOMERGE-SOURCE: CL 18375767 via CL 18375771 via CL 18375781
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18375783 by aurel cordonnier in ue5-release-engine-test branch]
* Updates to the VirtualShadowMapArrayCacheManager to support the invalidation of cache pages upon removal of dynamic primitives
* Various updates and fixes to support writing dynamic primitives' instance scene data and instance payload data from the GPU
* All these changes are needed by a few existing systems that will be using them soon to render via GPU Scene
#rb ola.olsson
#ROBOMERGE-AUTHOR: jamie.hayes
#ROBOMERGE-SOURCE: CL 18359911 via CL 18375369 via CL 18375397
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18375424 by jamie hayes in ue5-release-engine-test branch]
#rb ola.olsson, kenzo.terelst, chris.bunner, ben.woodhouse
#preflight 619d019e47752856c967e8e9
#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 18272226 via CL 18272299 via CL 18272307 via CL 18272369 via CL 18272376 via CL 18273256 via CL 18277581 via CL 18373265 via CL 18373289
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18373442 by jon nabozny in ue5-release-engine-test branch]
- Fix debug visualization that was inverted (red should be for invalidated)
#rb andrew.lauritzen
#ROBOMERGE-AUTHOR: ola.olsson
#ROBOMERGE-SOURCE: CL 18205579 via CL 18372165 via CL 18372288
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)
[CL 18372332 by ola olsson in ue5-release-engine-test branch]