Commit Graph

55 Commits

Author SHA1 Message Date
jason hoerner
b19bb6be2f UE5_MAIN: Multi-view-family scene renderer refactor, part 1. Major structural change to allow scene renderer to accept multiple view families, with otherwise negligible changes in internal behavior.
* Added "BeginRenderingViewFamilies" render interface call that accepts multiple view families.  Original "BeginRenderingViewFamily" falls through to this.
* FSceneRenderer modified to include an array of view families, plus an active view family and the Views for that family.
* Swap ViewFamily to ActiveViewFamily.
* Swap Views array from TArray<FViewInfo> to TArrayView<FViewInfo>, including where the Views array is passed to functions.
* FSceneRenderer iterates over the view families, rendering each one at a time, as separate render graph executions.
* Some frame setup and cleanup logic outside the render graph runs once.
* Moved stateful FSceneRenderer members to FViewFamilyInfo, to preserve existing one-at-a-time view family rendering behavior.
* Display Cluster (Virtual Production) uses new API.

Next step will push everything into one render graph, which requires handling per-family external resources and cleaning up singletons (like FSceneTextures and FSceneTexturesConfig).  Once that's done, we'll be in a position to further interleave rendering, properly handle once per frame work, and solve artifacts in various systems.

#jira none
#rnx
#rb zach.bethel
#preflight 625df821b21bb49791d377c9

[CL 19813996 by jason hoerner in ue5-main branch]
2022-04-19 14:45:26 -04:00
christopher waters
b7fdf2d5c1 Create FSceneViewState with correct FeatureLevel
#jira UE-136004
#rb mihnea.balta
#preflight 61a53e6cf70a9e92dbd7514b

#ROBOMERGE-AUTHOR: christopher.waters
#ROBOMERGE-SOURCE: CL 18433855 in //UE5/Release-5.0/... via CL 18435445
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18435922 by christopher waters in ue5-release-engine-test branch]
2021-12-10 18:10:16 -05:00
rune stubbe
6a330850ba Implemented Nanite support for HLOD warmup hints
#rb sebastien.lussier
#lockdown michal.valient
#preflight 61682a911ae4f30001b1b52b

#ROBOMERGE-AUTHOR: rune.stubbe
#ROBOMERGE-SOURCE: CL 17815695 via CL 18002078 via CL 18368480 via CL 18368565
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18368614 by rune stubbe in ue5-release-engine-test branch]
2021-12-03 10:24:20 -05:00
sebastien lussier
cbdda393e1 Prefetch render resources for HLODs before unloading a WP cell
* Warmup will trigger resource prefetching and delay unloading of cells for a number of frames
* Enable HLOD assets warmup: wp.Runtime.HLOD.WarmupEnabled 0|1
* Number of warmup frames:    wp.Runtime.HLOD.WarmupNumFrames n
* Currently only prefetching VT, Nanite prefetching to be added in another CL

Currently disabled (see "wp.Runtime.HLOD.WarmupNumFrames=0" in the device profiles ini)

#rb jeanfrancois.dube, jeremy.moore, andrew.firth
[FYI] chance.ivey, rune.stubbe
#lockdown andrew.firth
#preflight 6165d2b3e296ed0001f9a53e

#ROBOMERGE-OWNER: sebastien.lussier
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 17789214 via CL 17986920 via CL 18368433 via CL 18368532
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18368579 by sebastien lussier in ue5-release-engine-test branch]
2021-12-03 10:22:29 -05:00
rune stubbe
2b49ee823d Nanite changes to support prestreaming
#rb jeremy.moore, matt.hoffman
#lockdown michal.valient
#preflight 61583fa15631d9000132f55d

#ROBOMERGE-AUTHOR: rune.stubbe
#ROBOMERGE-SOURCE: CL 17701503 via CL 17969695 via CL 18366584 via CL 18366678
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18366745 by rune stubbe in ue5-release-engine-test branch]
2021-12-03 02:41:20 -05:00
jeremy moore
877e51c5cc Add hash for allocated virtual textures that can persist across runs.
Use this as id for recording and playback of virtual texture feedback.
Flesh out API for recording and playback of collected ids.
#preflight 61530aa080eba00001a511b6
#rb ben.ingram
#lockdown michal.valient

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17653384 via CL 17965453 via CL 18365635 via CL 18365739
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18365816 by jeremy moore in ue5-release-engine-test branch]
2021-12-03 01:10:59 -05:00
jeremy moore
06a42a25b9 Add stub functions for virtual texture page id recording and playback.
Will flesh these out very shortly, but this allows us to submit things that will depend on the API.
#rb Matt.Hoffman
#preflight 60a4250ef94e3c000150855f?step=db6b
#lockdown Michal.Valient

#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17614513 via CL 17963304 via CL 18365248 via CL 18365288
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18365314 by jeremy moore in ue5-release-engine-test branch]
2021-12-03 00:32:58 -05:00
chris kulla
6b77b70746 Invalidate path tracer accumulation when a material instance parameter changes
This is similar to the previous implementation, but loops over the active scenes from the game thread to avoid thread safety issues with the AllocatedScenes member of the render module.

#jira UE-96753

#rb Sebastien.Lussier, Jason.Nadro, Ben.Ingram

#preflight 615b1e8b2554620001fcf126

#ROBOMERGE-AUTHOR: chris.kulla
#ROBOMERGE-SOURCE: CL 17709628 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v879-17706426)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17709652 by chris kulla in ue5-release-engine-test branch]
2021-10-04 12:44:47 -04:00
aurel cordonnier
69fe095547 Merge from Release-Engine-Staging @ 17636544 to Release-Engine-Test
This represents UE4/Main @17638339 and Dev-PerfTest @17636504

[CL 17638842 by aurel cordonnier in ue5-release-engine-test branch]
2021-09-27 19:54:25 -04:00
chris kulla
59462d35d3 Material Instance changes should cause path tracer to restart accumulation
FMaterialRenderProxy doesn't appear to know which FScene it belongs to, so I had to go through the global render module and flag all scenes instead

#rb Ben.Ingram, Jason.Nadro

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

[CL 16704210 by chris kulla in ue5-release-engine-test branch]
2021-06-17 10:01:30 -04:00
Ola Olsson
df492855e0 Removed GPUCULL_TODO define (fixed in on-state)
#preflight 60acc49b58f02e0001a0a996
#rb graham.wihlidal,Arciel.Rekman,Brandon.Schaefer,will.damon

[CL 16446355 by Ola Olsson in ue5-main branch]
2021-05-25 08:15:14 -04:00
zach bethel
67229c547a Reworked scene renderer lifetime to allow deferral of scene render cleanup.
This avoids a long stall on mesh draw command recording tasks at the end of the frame and saves about .1 ms of work off the render thread.

#jira UE-114622
#rb luke.thatcher

[CL 16419616 by zach bethel in ue5-main branch]
2021-05-21 11:30:17 -04:00
Ben Ingram
e6c2c85df5 Fixes for UDIM VTs in texture editor
UDIMs use transformed UVs, account for these when computing visible regions
#rb none
#jira none

[CL 15926164 by Ben Ingram in ue5-main branch]
2021-04-05 21:56:26 -04:00
will damon
0a298b5d97 Disable GPU culling on Apple and Linux platforms.
- Convert preprocessor 'defined(GPUCULL_TODO)' checks to 'GPUCULL_TODO'
- Define GPUCULL_TODO to 0 for Apple and Linux platforms

#rb rolando.caloca
[FYI] carl.lloyd brandon.schaefer ola.olsson lukas.hermanns graham.wihlidal
#jira UE-109070
#rnx

#ROBOMERGE-OWNER: will.damon
#ROBOMERGE-AUTHOR: will.damon
#ROBOMERGE-SOURCE: CL 15502801 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
#ROBOMERGE-CONFLICT from-shelf

[CL 15503935 by will damon in ue5-main branch]
2021-02-23 15:21:24 -04:00
Juan Canada
c6e7666053 Fixed NonUnity Compile error
#rb none
#jira UE-108215

[CL 15375695 by Juan Canada in ue5-main branch]
2021-02-10 09:22:57 -04:00
zach bethel
a2bc3ea0f8 Converted canvas rendering to RDG.
#rb christopher.waters
#jira UE-106330

[CL 15157078 by zach bethel in ue5-main branch]
2021-01-21 14:46:38 -04:00
graham wihlidal
d85da18dfd Additional (disabled for now) helper routines and changes related to GPU instance culling (wrapped with GPUCULL_TODO)
#authors ola.olsson, graham.wihlidal
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe

[CL 15106174 by graham wihlidal in ue5-main branch]
2021-01-15 06:16:40 -04:00
graham wihlidal
862e861803 Added instance culling manager and context (disabled, and without shader files), and tons of hooks all over the renderer in preparation for upcoming GPU culling work.
#author ola.olsson
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe

[CL 15082481 by graham wihlidal in ue5-main branch]
2021-01-14 05:23:34 -04:00
zach bethel
c6cb1e82be Deprecated and gutted FSceneRenderTargets. Moved all textures over to FSceneTextures. Refactored the renderer to use RDG textures from FSceneTextures instead.
#rb arne.schober, luke.thatcher, christopher.waters, kenzo.terelst

[CL 15040082 by zach bethel in ue5-main branch]
2021-01-11 14:49:16 -04:00
zach bethel
e8f71e364f Fixed CIS build.
#rb none

[CL 14781293 by zach bethel in ue5-main branch]
2020-11-18 15:43:47 -04:00
zach bethel
ba31d9b2f5 Added FMinimalSceneTextures and FSceneTextures to deferred shading renderer and marshaled it through the render pipeline.
#rb christopher.waters
#rnx

[CL 14780920 by zach bethel in ue5-main branch]
2020-11-18 15:16:23 -04:00
zach bethel
7386219132 Refactored plugin hooks to use RDG. Deprecated RHICmdList versions of desktop scene textures uniform buffer.
#fyi yujiang.wang, steve.smith, wei.liu

[CL 14735677 by zach bethel in ue5-main branch]
2020-11-12 13:39:39 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -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
jonas meyer
ec7306d5ce Fix for crash when OnWorldCleanup is called with NewWorld == this. This happens when loading levels through the content browser and modifying the "Levels". In this case do not clean up the persistent uniformbuffers of the FScene, as it will not be deleted
#rb none
#jira UE-90380

#ROBOMERGE-SOURCE: CL 12123408 in //UE4/Release-4.25/... via CL 12123409
#ROBOMERGE-BOT: RELEASE (Release-4.25Plus -> Main) (v657-12064184)

[CL 12123410 by jonas meyer in Main branch]
2020-03-11 05:29:16 -04:00