Commit Graph

230 Commits

Author SHA1 Message Date
Sebastien Hillaire
ff9a2e30f6 Strata - PDO now relies on in shader depth test to avoid UAV write or material data when the depth buffer does not match.
(we cannot rely on LateZ to cull UAV writes)

#rb luke.thatcher
#preflight 628797c78828ea88c85302dc
#fyi charles.derousiers

[CL 20301945 by Sebastien Hillaire in ue5-main branch]
2022-05-20 16:08:18 -04:00
john huelin
95c1680b6e Fix DrawCallCount per pass not working when multithreaded RHI command recording is enabled.
[REVIEW]
#rnx

#ROBOMERGE-OWNER: john.huelin
#ROBOMERGE-AUTHOR: john.huelin
#ROBOMERGE-SOURCE: CL 20105654 via CL 20105671 via CL 20107113 via CL 20107146
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20110543 by john huelin in ue5-main branch]
2022-05-09 16:35:01 -04:00
jason hoerner
af48ea5a98 UE5_MAIN: Multi-view-family scene renderer refactor, part 2. Move FSceneTextures singleton out of RDG blackboard and FSceneTexturesConfig global variable singleton, into FViewFamilyInfo. This is necessary to allow multiple view families to render in a single render graph and a single scene renderer call.
* Existing calls to CreateSceneTextureShaderParameters and similar functions use "GetSceneTexturesChecked", which allows for the possibility that they are reached in a code path where scene textures haven't been initialized, and nullptr is returned instead of asserting.  The shader parameter setup functions then fill in dummy defaults for that case.  The goal was to precisely match the original behavior, which queried the RDG blackboard, and gracefully handled null if scene textures weren't there.  This definitely appears to occur in FNiagaraGpuComputeDispatch::ProcessPendingTicksFlush, which can be called with a dummy scene with no scene textures.  In the future, I may change this so dummy defaults are filled in for FSceneTextures at construction time, so the structure is never in an uninitialized state, but I would like to set up a test case for the Niagara code path before doing that, and the checks aren't harmful in the meantime.
* I marked as deprecated global functions which query values from FSceneTexturesConfig, but they'll still work with the caveat that if you use multi-view-family rendering, the results will be indeterminate (whatever view family rendered last).  There was only one case outside the scene renderer that accessed the globals (depth clear value), which I removed, noting that there is nowhere in the code where we modify the depth clear value from its global default.  I would like to permanently deprecate or remove these at some point.  Display Cluster is the only code that's currently using the multi-view-family code path, and as a new (still incomplete) feature, third party code can't be using it, and won't be affected.

#jira NONE
#rb chris.kulla zach.bethel mihnea.balta
#preflight 6261aca76119a1a496bd2644

[CL 19873983 by jason hoerner in ue5-main branch]
2022-04-22 17:33:02 -04:00
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
Charles deRousiers
61cf50b66f Change Strata binding buffer function args to take view instead of the explicit scene data.
#rb none
#jira none
#preflight 6246ee2a292f228e0914eed2
#fyi sebastien.hillaire

[CL 19586823 by Charles deRousiers in ue5-main branch]
2022-04-01 08:35:55 -04:00
zach bethel
51d195d21f Major refactor of reflection capture code.
- Converted to RDG.
 - Converted mobile to use subresource transitions instead of awkward ping-ponging between render targets.
 - Merged duplicate code paths between mobile / desktop.
 - Eliminated FReflectionScratchCubemaps singleton in favor of explicit resource marshalling.

#preflight 623cdecc573f51b292c9c84a
#rb christopher.waters

[CL 19513281 by zach bethel in ue5-main branch]
2022-03-25 11:17:23 -04:00
daniel wright
b4afcabf5c Fixed Base Pass Skylight being disabled by the Lumen project setting even when Lumen is disabled by scalabilty or forward shading
Fixed Ray Tracing Scene overhead when the project is set to use Lumen GI but Lumen is disabled by scalabilty
Grey out Dynamic GI Method and Reflection Method when the project uses Forward Shading
#preflight 6216fce37a51a1466493323f
#jira UE-141840
#rb Krzysztof.Narkowicz
#lockdown Juan.Canada

#ROBOMERGE-AUTHOR: daniel.wright
#ROBOMERGE-SOURCE: CL 19120562 in //UE5/Release-5.0/... via CL 19121408
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19153987 by daniel wright in ue5-main branch]
2022-02-25 14:59:42 -05:00
Sebastien Hillaire
7c6830b98e Strata - new blending mode.
- works for starta and legacy conversion material
- legacy converted to strata setup the strata blending mode
- strata material also affect legacy blending mode because it is used in multiple places in the engine.
- works for lit and unlit legacy material
- to be fixed:
    - lit with premultiplied alpha
    - materials with multiple shading models

#preflight https://horde.devtools.epicgames.com/job/6214893c3577e44741abf99f
#rb charles.derousiers

[CL 19069633 by Sebastien Hillaire in ue5-main branch]
2022-02-22 02:26:20 -05:00
zach bethel
9996233f7a Removed unused legacy MSAA multi-texture support from IPooledRenderTarget.
- Deprecated legacy members from FPooledRenderTargetDesc.
 - Deprecated ETextureRenderTarget and removed from RDG.
 - TargetableTexture always equals ShaderResourceTexture.
 - Simplified render target pool FindFreeElement.
 - Create pooled buffers and textures with a known state.

#rb graham.wihlidal
#preflight 61f8488568795b2f45852274

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

[CL 18799188 by zach bethel in ue5-main branch]
2022-01-31 17:22:31 -05:00
charles derousiers
1a835355e7 Add static lighting support for hair strands geometry with default lighting integrator.
#rb none
#jira UE-82893
#preflight 61f5548ba5457844f376c55d

#ROBOMERGE-AUTHOR: charles.derousiers
#ROBOMERGE-SOURCE: CL 18783744 in //UE5/Release-5.0/... via CL 18783745 via CL 18783779
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18783780 by charles derousiers in ue5-main branch]
2022-01-29 10:02:50 -05:00
jules blok
732e637f62 Fix renderer issues when rendering multiple ISR passes.
- New functions are added to get the Primary View or all Secondary Views and takes advantage of that to replace hardcoded indices.
- Added support for retrieving a monoscopic projection/pose from IStereoRendering when a single frustum is needed for culling purposes.

#rb Steve.Smith
#rb Jeff.Fisher
#rb Zach.Bethel
#preflight 61de16e96a076ddb53cf59b4

#ROBOMERGE-AUTHOR: jules.blok
#ROBOMERGE-SOURCE: CL 18579012 in //UE5/Release-5.0/... via CL 18579021 via CL 18579025
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18579042 by jules blok in ue5-main branch]
2022-01-11 19:03:42 -05:00
zach bethel
a618c04cbf Converted light grid injection resources to RDG.
#preflight 61ddebe6ce7fe7aeff6fb109

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18576538 in //UE5/Release-5.0/... via CL 18576549
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18576556 by zach bethel in ue5-release-engine-test branch]
2022-01-11 15:57:18 -05:00
sebastien hillaire
41f1ec4a3b Removed Strata post base pass no longer necessary.
#preflight https://horde.devtools.epicgames.com/job/61d485fa411c1403a3bcd687
#rb none

#ROBOMERGE-AUTHOR: sebastien.hillaire
#ROBOMERGE-SOURCE: CL 18511399 in //UE5/Release-5.0/... via CL 18511447
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18511521 by sebastien hillaire in ue5-release-engine-test branch]
2022-01-04 14:25:34 -05:00
charles derousiers
f499a215a2 Remove RenderLight from DeferredRendering, and change it to a standalone static/internal function to light rendering to ease its refactor to RDG.
#rb none
#jira none

#ROBOMERGE-AUTHOR: charles.derousiers
#ROBOMERGE-SOURCE: CL 18404002 in //UE5/Release-5.0/... via CL 18404004
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18404006 by charles derousiers in ue5-release-engine-test branch]
2021-12-08 03:54:06 -05:00
sebastien hillaire
14639d8be5 Fixed typo in strata
#rb none

#ROBOMERGE-AUTHOR: sebastien.hillaire
#ROBOMERGE-SOURCE: CL 18399598 in //UE5/Release-5.0/... via CL 18399617
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18399637 by sebastien hillaire in ue5-release-engine-test branch]
2021-12-07 15:47:22 -05:00
graham wihlidal
bb4bd1a374 Nanite wireframe support (postfx using barycentric coordinates)
#preflight 61afb25e7177ccd1a11b85b9
#rb brian.karis
#jira UE-98068 UE-98066

#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 18398840 in //UE5/Release-5.0/... via CL 18398910
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v896-18170469)

[CL 18398971 by graham wihlidal in ue5-release-engine-test branch]
2021-12-07 15:14:57 -05:00
jon nabozny
38f3e1f619 Another macro fix for RenderDebugViewMode
#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 18343803 via CL 18375135 via CL 18375389
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18375409 by jon nabozny in ue5-release-engine-test branch]
2021-12-03 17:53:36 -05:00
jon nabozny
216e5d5844 Fix build issues introduced in CL-18267750
[FYI] [at]Graham.Wihlidal

#ROBOMERGE-AUTHOR: jon.nabozny
#ROBOMERGE-SOURCE: CL 18342267 via CL 18375098 via CL 18375387
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18375405 by jon nabozny in ue5-release-engine-test branch]
2021-12-03 17:53:22 -05:00
graham wihlidal
3b025e6927 Implemented support for the shader complexity debug view mode with Nanite materials.
#rb brian.karis
[FYI] arciel.rekman
#preflight 619c3afffa0b360c407d4675

#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 18267750 via CL 18372835 via CL 18372942
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18373058 by graham wihlidal in ue5-release-engine-test branch]
2021-12-03 16:04:54 -05:00
jon nabozny
5342ad925e Added VirtualTexturePendingMips debug view mode.
For each pixel it shows the worst case missing mip level in all of the virtual textures sampled at that pixel.
Useful to analyze where late virtual texture page streaming is happening.
#rb ben.ingram
#preflight 615b5ecb255462000117288c
#lockdown michal.valient

#ROBOMERGE-OWNER: jon.nabozny
#ROBOMERGE-AUTHOR: jeremy.moore
#ROBOMERGE-SOURCE: CL 17716764 via CL 17979410 via CL 18366649 via CL 18366731
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18366789 by jon nabozny in ue5-release-engine-test branch]
2021-12-03 02:44:01 -05:00
charles derousiers
078f5165f1 Move SS profiles and SS pre-intregrated profiles textures onto the view in order to make them accessible to all passes without extra manual binding.
#rb sebastien.hillaire, tiantian.xie, wei.liu
#jira none
#preflight 61a61f01f70a9e92dbe9e700

#ROBOMERGE-AUTHOR: charles.derousiers
#ROBOMERGE-SOURCE: CL 18323676 in //UE5/Release-5.0/... via CL 18323690
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18323696 by charles derousiers in ue5-release-engine-test branch]
2021-11-30 08:27:29 -05:00
sebastien hillaire
f8e0092b8b New start material buffer: 2 uint using rop and the rest is written through UAV.
Huge optimisation for console.

#rb charles.derousiers

#ROBOMERGE-AUTHOR: sebastien.hillaire
#ROBOMERGE-SOURCE: CL 18309039 in //UE5/Release-5.0/... via CL 18309083
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18309131 by sebastien hillaire in ue5-release-engine-test branch]
2021-11-29 09:31:58 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
sebastien hillaire
438491ff67 Removed the SkyAtmosphere base pass permutation as this is only controlled from the project setting and material state defines anyway.
This was missed when removing the AtmosphericFog.

#rb Arciel.Rekman, Jian.Ru
#jira FORT-411963

#ROBOMERGE-OWNER: sebastien.hillaire
#ROBOMERGE-AUTHOR: sebastien.hillaire
#ROBOMERGE-SOURCE: CL 17964483 in //UE5/Release-5.0/... via CL 17964598
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v885-17909292)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17964608 by sebastien hillaire in ue5-release-engine-test branch]
2021-10-28 12:34:50 -04:00
andrew davidson
57beb335f2 Merging //UE5/Dev-LargeWorldCoordinates [at] 17581892 to //UE5/Main
#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 17595295 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17595306 by andrew davidson in ue5-release-engine-test branch]
2021-09-22 10:01:48 -04:00