Commit Graph

33 Commits

Author SHA1 Message Date
christopher waters
1f21b73b25 Ran IWYU on RHI and RenderCore, private only.
#preflight 63d358c85c69f453c1f79c37

[CL 23889591 by christopher waters in ue5-main branch]
2023-01-27 14:54:10 -05:00
christopher waters
6e30ddb01e Dependency cleanup around DataDrivenShaderPlatformInfo and a few other headers.
#preflight 63921e6a67018b14b5925197

[CL 23454104 by christopher waters in ue5-main branch]
2022-12-08 15:35:35 -05:00
zach bethel
395c776305 Added CVar to RDG to control whether to use async destruction task.
[REVIEW] [at]mickael.gilabert, [at]john.huelin
#ushell-cherrypick of 23297379 by zach.bethel

#localization none
#tests manual

[CL 23300654 by zach bethel in ue5-main branch]
2022-11-28 19:30:42 -05:00
zach bethel
c7762df3f0 Added counters for tracking RDG stats and CSV counters for passes / resources.
#preflight 636ab090ed07daaa9a25dba6
[FYI] ben.woodhouse

[CL 23049849 by zach bethel in ue5-main branch]
2022-11-09 04:11:18 -05:00
zach bethel
3b9b0f2d52 Resubmit of 22872901.
Added RDG_EVENT_SCOPE_FINAL variant that silences child scopes / events.
 - Added r.RDG.Events CVar to control GPU event behavior.
      - 0 disables GPU events; 1 enables GPU events and FINAL scopes suppress child scopes; 2 enables all GPU events.

#preflight 63614e16397c7af896701cae

[CL 22917968 by zach bethel in ue5-main branch]
2022-11-02 11:46:28 -04:00
nat parkinson
442a36cfd4 [Backout] - CL22872901 as it seems to have caused compile errors
[FYI] zach.bethel
Original CL Desc
-----------------------------------------------------------------
Added RDG_EVENT_SCOPE_FINAL variant that silences child scopes / events.
 - Added r.RDG.Events CVar to control GPU event behavior.
      - 0 disables GPU events; 1 enables GPU events and FINAL scopes suppress child scopes; 2 enables all GPU events.

#preflight 6360117d117bb4ce9da40ef0
#rb krzysztof.narkowicz, yuriy.odonnell, daniel.wright

[CL 22879513 by nat parkinson in ue5-main branch]
2022-11-01 07:02:14 -04:00
zach bethel
738376cef5 Added RDG_EVENT_SCOPE_FINAL variant that silences child scopes / events.
- Added r.RDG.Events CVar to control GPU event behavior.
      - 0 disables GPU events; 1 enables GPU events and FINAL scopes suppress child scopes; 2 enables all GPU events.

#preflight 6360117d117bb4ce9da40ef0
#rb krzysztof.narkowicz, yuriy.odonnell, daniel.wright

[CL 22876153 by zach bethel in ue5-main branch]
2022-10-31 20:56:49 -04:00
zach bethel
487a34d598 Added parallel setup for RDG passes
- Passes are added to a queue that is consumed by a task to perform pass setup actions.
 - Moved CompilePassBarriers to overlap with resource collection.
 - Converted most tasks to new task system.

#preflight 630e5e2e660db81edb9a0562

[CL 21710710 by zach bethel in ue5-main branch]
2022-08-30 17:48:59 -04:00
zach bethel
08528f0f52 Fixed typo in -rdgparallelexecute.
#preflight trivial

[CL 20523088 by zach bethel in ue5-main branch]
2022-06-06 13:08:58 -04:00
zach bethel
fdc795f5b9 Implemented support for fused CopySrc | CopyDest transitions for Vulkan in RDG.
- Simplified RDG transition logic to only use subresource transitions.
 - Don't allow unmergeable states to be merged during pass setup.

#preflight 627ebfadca3b90fc14fb9b85
#fyi jeannoe.morissette

[CL 20224647 by zach bethel in ue5-main branch]
2022-05-16 11:02:52 -04:00
zach bethel
2230e96167 Removal of RDG drain experiment for UE5 release. It is currently unused and hasn't proven itself necessary yet. It would be relatively straightforward to re-add if the need arises in the future.
#rb mihnea.balta
#preflight 61f82d9b3e13556eb9c3eb34

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18794948 in //UE5/Release-5.0/... via CL 18795422 via CL 18796381
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18796735 by zach bethel in ue5-main branch]
2022-01-31 15:55:31 -05:00
zach bethel
3b9e24d8b2 Replaced legacy XB1 transient page allocator with RDG page table mapped transient allocator. Added support for ESRAM page pool.
#rb ben.woodhouse
#preflight 61df2577ff67b6fe7ac00eae

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18587728 in //UE5/Release-5.0/... via CL 18587798 via CL 18587831
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18587909 by zach bethel in ue5-main branch]
2022-01-12 14:29:07 -05:00
zach bethel
a23f0c81d4 Major refactor of transient allocator to support page table mapping implementation and extracted transient resources.
- Implemented common transient page allocator in RHICore.
 - Implemented XBox specific GPU page table mapping allocator.
 - Extended RDG insights to support viewing heap visualization or page pool visualization.

#preflight 61d356682e0e436c725818bf

[CL 18504626 by zach bethel in ue5-main branch]
2022-01-03 18:28:16 -05:00
guillaume abadie
264e5cadb8 Fixes r.RDG.ClobberResources not clobbering RDGBuffer with the said value
#rb trivial
#jira UE-135342
[FYI] zach.bethel

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 18268218 via CL 18372850 via CL 18372947
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18373059 by guillaume abadie in ue5-release-engine-test branch]
2021-12-03 16:05:01 -05:00
zach bethel
4df4c81c69 Small improvement to RDG debug resource name filtering to allow exclusion.
#preflight 6123cf072c1f1c0001a0798a

#ROBOMERGE-SOURCE: CL 17270047 via CL 17273565
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v858-17259218)

[CL 17274490 by zach bethel in ue5-release-engine-test branch]
2021-08-23 15:27:06 -04:00
zach bethel
447ab7a28a Fixed bug with RDG drain and async compute. Fixed transition bug with UAV workaround in upload buffers. Added some command line arguments. Optimiized checks to disable RDG validation if parallel.
#rb none

#ROBOMERGE-SOURCE: CL 16997303 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16997322 by zach bethel in ue5-release-engine-test branch]
2021-07-29 13:02:16 -04:00
zach bethel
f9626764e2 Added r.RDG.ParallelExecute console variable to control parallel RDG execution for simplicity.
#rb trivial

#ROBOMERGE-SOURCE: CL 16963104 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16963197 by zach bethel in ue5-release-engine-test branch]
2021-07-26 20:02:01 -04:00
zach bethel
b9f79ff9f0 Mark ray tracing passes with a typedef'd command list to control whether they are parallelizable by RDG. Re-enabled parallel RDG.
#rb jaun.canada

#ROBOMERGE-SOURCE: CL 16958296 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16958298 by zach bethel in ue5-release-engine-test branch]
2021-07-26 13:30:37 -04:00
juan canada
b7c3200237 r.RDG.ParallelExecutePassMin temporary set to 0 to avoid a crash in ray tracing
#rb chris.kulla
[FYI] zach.bethel
#jira none

#ROBOMERGE-SOURCE: CL 16939059 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16939071 by juan canada in ue5-release-engine-test branch]
2021-07-23 13:43:26 -04:00
zach bethel
89fc4cf833 Parallel RDG execution improvements.
- Added ERDGBuilderFlags::AllowParallelExecute to tag specific builders to attempt parallel execution. This avoids cases where small graphs fork tasks and end up causing contention. Only the main scene render graphs are tagged.
 - Moved RHI transition creation to an async task.
 - Moved parallel execute setup and dispatch to an async task.
 - Fixed RDG draining asserts using a short-term workaround by tagging relevant scene textures as non-transient.
 - Deprecated RDG AddPass utilities without names and fixed up last remnants.
 - Enabled parallel RDG execution by default.

[FYI] christopher.waters

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

[CL 16925957 by zach bethel in ue5-release-engine-test branch]
2021-07-22 12:43:00 -04:00
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
jian ru
55aeb4e4a6 XB1 transient allocator implementation that works with RDG. Courtesy to Kenzo for most of the implementation
#jira UE-117189
#rb ben.woodhouse, kenzo.terelst
[FYI] ben.woodhouse, kenzo.terelst, zach.bethel

#ROBOMERGE-SOURCE: CL 16682921 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v835-16672529)

[CL 16682930 by jian ru in ue5-release-engine-test branch]
2021-06-15 20:56:21 -04:00
kenzo terelst
17719fe54c Force IndirectArg buffers to not use transient allocator and make them committed resources in d3d12
#jira UE-115982
#rb Yuriy.ODonnell, Graham.Wihlidal

#ROBOMERGE-OWNER: kenzo.terelst
#ROBOMERGE-AUTHOR: kenzo.terelst
#ROBOMERGE-SOURCE: CL 16425509 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v811-16416015)
#ROBOMERGE-CONFLICT from-shelf

[CL 16425600 by kenzo terelst in ue5-main branch]
2021-05-21 17:42:34 -04:00
zach bethel
8bf4b53267 Make RDG draining opt-in--it needs additional testing.
#rb none
#fyi jian.ru

[CL 16408243 by zach bethel in ue5-main branch]
2021-05-20 15:37:19 -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