Commit Graph

19 Commits

Author SHA1 Message Date
zach bethel
5ec769f91e RDG Parallel Execution (disabled by default)
- Refactored RDG to support free-threaded execution of passes.
 - Refactored renderer to use specific RHI command list variants in pass lambda. Immediate command list passes are forced to stay on the render thread, while other variants can be parallelized.

#rb christopher.waters

#ROBOMERGE-SOURCE: CL 16838717 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16838724 by zach bethel in ue5-release-engine-test branch]
2021-07-13 12:38:37 -04:00
zach bethel
90bc2efada RDG refactor to enable draining of work after issuing occlusion queries.
- New Drain() method on FRDGBuilder; will flush all pending work.
 - Drained passes are not culled; resource lifetimes are extended; async compute fences are optimized as best as possible but fence joining may occur after the drain.
 - Batch up and pre-build all resource transitions. This is a prerequisite for parallel command lists.
 - Removed ServiceLocalQueue passes with built-in RDG AddDispatchHint().

#jira UE-114622

[CL 16393495 by zach bethel in ue5-main branch]
2021-05-19 17:54:58 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
zach bethel
076cda9007 Fix for RDG submitting an empty transition array.
#rb trivial

#ROBOMERGE-SOURCE: CL 15835605 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v785-15821902)

[CL 15835656 by zach bethel in ue5-main branch]
2021-03-25 19:30:11 -04:00
zach bethel
8c1793ad5a Integration of RHI transient allocator into RDG.
- Replaced legacy transient support from RDG and replaced with new API.
 - Reworked acquire / discard operations a bit and added RHI validation to track correctness.
 - Reworked RDG barrier batching to include acquire / discard operations.
 - Hardened render pass merging logic and expanded to support lifetime extension of transient resources.
 - Added transient tag to RDG insights to track which resources are transient.

#rb luke.thatcher, kenzo.terelst

[CL 15726534 by zach bethel in ue5-main branch]
2021-03-17 12:44:59 -04:00
Marc Audy
9753392e2b Merge UE5/RES CL# 15462083 to UE5/Main
This represents UE4/Main @ 15414221

[CL 15463811 by Marc Audy in ue5-main branch]
2021-02-18 18:13:28 -04:00
zach bethel
2f4d0bf263 Renamed SetGlobalUniformBuffers to SetStaticUniformBuffers for consistency.
#rb christopher.waters
#jira none

[CL 15071806 by zach bethel in ue5-main branch]
2021-01-13 16:51:48 -04:00
zach bethel
0a145b23fe Improved RDG state merging to better handle subresources. Subresource tracking is used for the rest of the graph if subresource states are encountered. Improved error reporting for edge case where transitions are inserted out of order. Added explicit merge check for depth read / write to make sure that it doesn't merge with anything else.
#rb none

[CL 14874576 by zach bethel in ue5-main branch]
2020-12-07 18:45:31 -04:00
zach bethel
0d7dc4d4ed Refactor of uniform buffer binding to allow for runtime selection of static or per-shader binding. This is a necessary precursor to moving the View uniform buffer to use static bindings on mesh passes; it is used in so many places that both binding models are required to preserve compatibility. Added validation to catch when a uniform buffer is bound using both methods at the same time. Added CVar to RHI transition validation to control whether to break in the debugger on a transition failure.
#rb christopher.waters

[CL 14873973 by zach bethel in ue5-main branch]
2020-12-07 17:42:32 -04:00
Wei Liu
0dac6d9fd6 Port mobile base pass to RDG.
#jira UE-91343

#rb Zachary.Bethel, Dmitriy.Dyomin, Jack.Porter, Mi.Wang

[CL 14855338 by Wei Liu in ue5-main branch]
2020-12-04 12:07:09 -04:00
zach bethel
5630bcfd89 Added Multi-pipeline Transition Support to platforms and RDG. Fixed uniform buffer hack in composition lighting.
#rb luke.thatcher, kenzo.terelst
#jira none

[CL 14727873 by zach bethel in ue5-main branch]
2020-11-11 19:22:36 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
Michal Valient
95d19f95b1 [REVERB] Merging //UE4/Private-Reverb-Development@13832732
#rb graham.wihlidal, rune.stubbe, brian.karis, andrew.lauritzen, jeff.farris

[CL 13834854 by Michal Valient in ue5-main branch]
2020-07-06 18:58:26 -04:00
zach bethel
8be56c56e2 Fixed RDG leaking uniform buffers.
#rb none

#ROBOMERGE-SOURCE: CL 12488855 via CL 12488867 via CL 12488870
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v673-12478461)

[CL 12488877 by zach bethel in Main branch]
2020-03-30 14:27:58 -04:00
zach bethel
24a7354031 Removed additional allocations from FRDGBuilder. Compile out debug labels for test / shipping in render target pool. Don't set global uniform buffers when none exist.
#rb none


#ROBOMERGE-SOURCE: CL 12435615 via CL 12435617
#ROBOMERGE-BOT: (v671-12333473)

[CL 12441349 by zach bethel in Release-Engine-Staging branch]
2020-03-26 07:21:08 -04:00
Rolando Caloca
bbb9564388 Copying //UE4/Dev-RenderPlat-Staging@11110326 to //UE4/Main
#rb none
#rnx

[CL 11110369 by Rolando Caloca in Main branch]
2020-01-24 18:07:01 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
Marcus Wassmer
6517c68ef5 Copying //UE4/Dev-RenderPlat-Staging@8684824 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 8684840 by Marcus Wassmer in Main branch]
2019-09-14 09:45:25 -04:00
Rolando Caloca
aa0d2303d6 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) @ 6944469
#rb none
#rnx

[CL 6944849 by Rolando Caloca in Main branch]
2019-06-11 18:27:07 -04:00