- Expands all RDG and non-RDG bindings into a list of RHIResource bindings.
- Future work could batch up all non-SetShaderParameters calls into similar data structures.
#rb zach.bethel, jeannoe.morissette
#preflight 637320ad3248425305112b91
[CL 23147896 by christopher waters in ue5-main branch]
no need for more macro to enable debugging use regular macros to disable optimizations
#rb devin.doucette
#preflight 63727efbbf76990b710f07d2
[CL 23121752 by joe pribele in ue5-main branch]
- The RHI and render threads are now blocking on FGraphEvents in various platform RHI implementations, but the timing stats did not take this time into account.
- Some time was double counted (e.g. on the render thread, due to a FRenderThreadIdleScope plus a nested call to FEvent::Wait which includes a per-thread wait stat).
- The fix is to remove use of GRenderThreadIdle / FRenderThreadIdleScope etc in places where the thread is going to wait on an FGraphEvent, to avoid the double counting. This fixes the odd spikes on the RHIT in CSV profiles.
- Also removed the GWorkingRHIThreadStallTime global. RHI idle time is now tracked using standard thread stats (FThreadIdleStats::FScopeIdle, which is included in the FRenderThreadIdleScope when called from the RHI thread).
- Simplified copy/paste instances of GRenderThreadIdle and GRenderThreadNumIdle by replacing them with a FRenderThreadIdleScope across platform RHIs.
After this change, the RT and RHIT unit stats are stable in Lyra game, when clicking away from the window to force the title into a low framerate mode. Before this change, the RT/RHIT stats would change significantly.
#rb Ben.Woodhouse
#preflight 636ad7c3450be1d9f849a34f
[CL 23069592 by luke thatcher in ue5-main branch]
Force removing uses of GFSDK_Aftermath_FeatureFlags_EnableShaderErrorReporting to hopefully prevent the new GPU crashes we saw last time.
#jira none
#rb mihnea.balta, jeannoe.morissette
#preflight 636a7e03ed07daaa9a13a655
[CL 23056131 by christopher waters in ue5-main branch]
- Added explicit SwitchPipeline calls to async command lists.
- Moved pipeline push / pop calls from platform implementations to RHI command list.
#rb christopher.waters
#preflight 636937204d3c1d9d9264ce7b
[CL 23012810 by zach bethel in ue5-main branch]
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]