The driver version is logged and checked after the RHI instance is created, before calling GDynamicRHI->Init(). This worked on D3D11 and 12 without many changes because those RHIs select the adapter before the Init call, so they can fill in the information necessary for GetGPUDriverInfo() before Init. However, the Vulkan RHI init code had to be restructured quite a bit to do the same thing.
Also removed some obsolete hardcoded driver version checks from the Vulkan RHI, since we have better checks in RHIDetectAndWarnOfBadDrivers().
#rnx
#preflight https://horde.devtools.epicgames.com/job/632b408b7b582f58abce036e
[CL 22305628 by mihnea balta in ue5-main branch]
This change includes significant refactor work performed in //UE5/Dev-ParallelRendering. A brief summary of the work is as follows:
Refactored RHI command lists
- Removal of the "immediate" async compute command list
- Introduced an "active pipe" on each command list, allowing RHICmdLists to record work for either graphics or async compute. Pipes can be selected using the SwitchPipeline() function, or the FRHICommandListScopedPipeline helper.
- New explicit command list submission RHI API (RHIFinalizeContext, RHISubmitCommandLists). The IRHICommandContextContainer type has been removed.
- Explicit GPU submission is automatically appended to the immediate command list when it is dispatched to the RHI thread.
Platform RHI implementations
- The new submission API has been implemented across all platforms. Some platforms required a significant refactor.
#rb Mihnea.Balta,Kenzo.Terelst
#jira UE-139550
#preflight 6332e3641003050806d802ef
[CL 22239063 by luke thatcher in ue5-main branch]
Editor.HDRSupport=1
r.AllowHDR=1
bUseHDRDisplayOutput=True (in the game user settings) or r.HDR.EnableHDROutput=1
#jira UE-161417
#preflight 6321fc098838676d104cd290
[REVIEW] David.Harvey eric.renaudhoude mihnea.balta
[CL 22031753 by benjamin rouveyrol in ue5-main branch]
Fixed include paths to be relative to the private or public folders.
Hid or removed includes that reached into other private module folders.
Updated PublicInclude paths when necessary.
#jira
#preflight 631a717cec45fbf3d74d4ba7
[CL 21916033 by bryan sefcik in ue5-main branch]
By default Lumen is disabled for Scene Capture to save memory, but can be enabled via post process override settings. The memory usage display was important when adding this feature, to give feedback to the user of the memory impact for enabling Lumen. It's also just generally useful besides. Lumen costs 340 MB to enable if view specific Lumen scene data is enabled at low quality (half resolution page buffer), or 640 MB at high quality (full resolution page buffer). Besides memory statistics in the Texture Editor, there is an editor specific command which dumps per-resource sizes to log (r.SceneCapture.DumpMemory), useful for investigating where the memory is going.
Lumen requires persistent state to function properly, so Lumen is disabled if bCaptureEveryFrame and bAlwaysPersistRenderingState are both false. I decided not to allow Lumen for Scene Capture Cube, due to high memory cost, poor CPU performance, and lighting seams across the faces. I'm hoping in the future to run Scene Capture Cube as a single scene render call (effectively 6-way split screen for the 6 cube map faces), and have certain rendering passes run as a single omnidirectional pass. Perhaps Lumen could use a single radiance cache for all 6 faces, rather than 6 separate caches, reducing memory, significantly improving performance, and hopefully solving lighting seams.
I rounded out the set of functions that handle per-view VSM and Lumen caches, to include functionality to remove the caches (necessary to allow the per-view Lumen cache to be toggled back off), and query their presence.
#jira UE-148665
#rb Krzysztof.Narkowicz Daniel.Wright zach.bethel
#preflight 6307cf561615ec0db52700e3
[CL 21594503 by jason hoerner in ue5-main branch]
-Remove the deprecated WindowsMixedReality and AzureSpatialAnchorsForWMR plugins.
#jira UE-147894
#review-21507768
#rb Robert.Srinivasiah
#preflight 630554dc5a5d4e46243727f3
[CL 21523822 by Jeff Fisher in ue5-main branch]
[Backout] - CL21321503
#fyi christopher.waters
Original CL Desc
-----------------------------------------------------------------
Updating Aftermath to version 2.18
#jira none
#rb jeannoe.morissette
#preflight 62f3d03d3f500fb6dc383b49
[CL 21339377 by christopher waters in ue5-main branch]
#rnx
#rb trivial
#preflight no
#ROBOMERGE-AUTHOR: mihnea.balta
#ROBOMERGE-SOURCE: CL 21163413 via CL 21169400 via CL 21170157
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21183704 by mihnea balta in ue5-main branch]
- RHISupportsMultiviewport made to work on relevant shader platforms.
- RHISetStereoViewport implemented
- Unused outputs removal fixed to always consider viewport index used.
- Renamed confusing terminology (multiview -> multiviewport).
- Added a CVar (vr.MultiViewport) to force disable
- Added a canvas output to know the method in non-Shipping
#jira UE-151349
#review @Robert.Srinivasiah, @Jules.Blok, @JeanNoe.Morissette
#rb Robert.Srinivasiah, Jules.Blok, Chris.Waters
#preflight 62d193c43b057e727491c9d2
[CL 21153050 by Arciel Rekman in ue5-main branch]
#rnx
#rb trivial
#preflight no
#ROBOMERGE-AUTHOR: mihnea.balta
#ROBOMERGE-SOURCE: CL 21106372 via CL 21106542 via CL 21106559
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21107559 by mihnea balta in ue5-main branch]