Commit Graph

40 Commits

Author SHA1 Message Date
zach bethel
3cc87760bd Removed cases of AddCopyToResolveTargetPass which either weren't necessary or weren't performing multisample resolves.
#preflight 628270aa046b81bf93c13e50

[CL 20226032 by zach bethel in ue5-main branch]
2022-05-16 12:09:51 -04:00
Wei Liu
355707489e Refactor of mobile custom depth/stencil to line up with pc on all mobile platform.
#jira none

#rb Dmitriy.Dyomin
#fyi Serge.Bernier
#preflight 627b87a65d003338d95018bf

[CL 20135905 by Wei Liu in ue5-main branch]
2022-05-11 06:10:52 -04:00
dmitriy dyomin
8cf7063946 Fixed: Rendering artifacts on a specific mobile devices with deferred shading enabled
#preflight 626220c2a21b7543713ad4f9
#jira UE-149924
#rb wei.liu
#lockdown Jack.Porter

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 19898473 in //UE5/Release-5.0/... via CL 19898534
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19901837 by dmitriy dyomin in ue5-main branch]
2022-04-25 10:01:40 -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
Jeff Fisher
e8aef6706a bIsStandaloneStereoOnlyDevice thread safety ensures
-SceneTextures.cpp was using module lookup functions in the render thread that are only safe to use without locking on the game thread.  However we don't want to lock these every frame.  So I have added an accessor for this information to IStereoRendering.h and cached the values in the oculus HMD implementation that uses it but did not already have the value cached in the hmd.  This cached value can be safely read on any thread.
#review-19621457
#rb Jules.Blok Robert.Srinivasiah
#preflight 624f446f8a43273c43f570f7

[CL 19680731 by Jeff Fisher in ue5-main branch]
2022-04-07 18:37:45 -04:00
dmitriy dyomin
fc2e5b8300 Use a precise pixel format for SceneDepthAux when capturing scene depth on mobile
[FYI] jonathan.bard

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 19642760 via CL 19642768 via CL 19642829 via CL 19642909 via CL 19642944
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19643135 by dmitriy dyomin in ue5-main branch]
2022-04-06 01:46:34 -04:00
Arciel Rekman
ac58a74d1c Fix too dark mobile preview (UE-145593)
- Contributed by Remi Palandri.

#rb Rob.Srinivasiah, JNM
#review @Robert.Srinivasiah, @Jeannoe.Morissette
#jira UE-145593
#preflight 62438ad8f4217035fa731436

[CL 19551308 by Arciel Rekman in ue5-main branch]
2022-03-29 19:15:38 -04:00
brian white
4e3f007f63 Reorganize flow to prevent calls to IHeadMountedDisplayModule::IsAvailable when not necessary.
#jira UE-143436
#rb Dmitriy.Dyomin
#preflight 622a1e2f6c2b449433c6fc0d
#rnx

[CL 19390886 by brian white in ue5-main branch]
2022-03-15 14:53:35 -04:00
dave barrett
db9bc35abc fix issue with forward rendering + MSAA on console platforms
#jira UE-138270
#preflight 61f998049e4d23cd93ae7523
#rb christopher.waters

#ROBOMERGE-AUTHOR: dave.barrett
#ROBOMERGE-SOURCE: CL 18819975 in //UE5/Release-5.0/... via CL 18819984 via CL 18822907
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v910-18824042)

[CL 18825058 by dave barrett in ue5-main branch]
2022-02-02 08:19:22 -05:00
serge bernier
9bd5dd217f Make the fetching of the Stencil/depth in the PostProcessMaterial datadriven instead of just testing the feature level. This enable some consoles using the mobile renderer to still have the possibility to use the HiStencil and fetch directly the stencil buffer in the shader.
#jira UE-139942#rb
#rb florin.pascu

#preflight Main

#ROBOMERGE-OWNER: serge.bernier
#ROBOMERGE-AUTHOR: serge.bernier
#ROBOMERGE-SOURCE: CL 18795109 via CL 18795681 via CL 18795876 via CL 18801655 via CL 18802214
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)
#ROBOMERGE-CONFLICT from-shelf

[CL 18808079 by serge bernier in ue5-main branch]
2022-02-01 09:47:39 -05:00
zach bethel
8c6ea80834 Relaxed validation on transient resource pool shutdown due to non-deterministic static initialization order.
#preflight 61e1d2de00246899a94c26c5
#jira UE-138871

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18623506 in //UE5/Release-5.0/... via CL 18623528 via CL 18623544
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18623564 by zach bethel in ue5-main branch]
2022-01-14 16:28:58 -05:00
UnrealBot
c47e81b2cb Branch snapshot for CL 18531810
[CL 18531810 in ue5-main branch]
2022-01-06 16:44:09 +00:00
UnrealBot
2987349d36 Branch snapshot for CL 18514113
[CL 18514113 in ue5-main branch]
2022-01-05 20:41:17 +00:00
zach bethel
3311c80808 Allow custom depth and depth to be transient when extracted for Slate.
#rb none
#preflight trivial

[CL 18520348 by zach bethel in ue5-main branch]
2022-01-05 12:09:12 -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
dmitriy dyomin
68b0b801d2 Do not extract memoryless textures from RDG
#rb none
[FYI] wei.liu, zach.bethel

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 18049723 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v885-17909292)

[CL 18049740 by dmitriy dyomin in ue5-release-engine-test branch]
2021-11-04 05:10:53 -04:00
tuxerr
d299b17d29 PR #8517: fix VK_FDM usage on Vulkan (Contributed by tuxerr)
3 fixes:
* Fixes the GRHISupportsVariableRateShading logic to ensure that bool doesn't get nuked if the device supports FragmentDensityMap but not ShadingRateAttachment.
* Ensures Scene Textures are created as an array when multiview enabled.
* Ensures the RenderPass2 impl supports the Multiview Mask.

#jira UE-131846
#rb steve.smith jeannoe.morissette

#ROBOMERGE-AUTHOR: steve.smith
#ROBOMERGE-SOURCE: CL 17864739 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v883-17842818)

[CL 17864759 by tuxerr in ue5-release-engine-test branch]
2021-10-19 15:28:06 -04:00
dmitriy dyomin
783ce8c4b5 Fixed SceneColor alpha on mobile to be consistent with desktop rendering
#rb florin.pascu, jack.porter

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 17658402 via CL 17658416 via CL 17658423 via CL 17658426 via CL 17658451
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17658455 by dmitriy dyomin in ue5-release-engine-test branch]
2021-09-29 02:54:29 -04:00
dmitriy dyomin
bd0084a48a Fixed broken CustomDepth rendering for translucent materials on mobile (CL# 17646057 in UE4)
#jira UE-129499
#rb jack.porter

#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 17657901 via CL 17657913 via CL 17657927 via CL 17657931 via CL 17657960
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17657964 by dmitriy dyomin in ue5-release-engine-test branch]
2021-09-29 01:08:35 -04:00
zach bethel
6c4723c02f Renamed SceneColorMobile / SceneColorDeferred to SceneColor.
#jira UE-125217
#rb trivial

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 17447667 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17447704 by zach bethel in ue5-release-engine-test branch]
2021-09-07 14:10:14 -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
wei liu
553f4d5305 1. Use G8 format for mobile GTAO on Vulkan.
2. Enable mobile AO and PPR on highend mobile devices

#jira UE-119101
#8178

#rb Dmitriy.Dyomin

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

[CL 16906591 by wei liu in ue5-release-engine-test branch]
2021-07-21 03:45:31 -04:00
florin pascu
8b0c31429c Remove Opacity Pass MobileSceneCapture
Remove MobileSceneCapture, move everything to the shared SceneCaptureRendering file
Remove MobileSceneCapture.usf
#jira UE-118450
#rb Dmitriy.Dyomin, Jack.Porter
#preflight 60f56cd41d824300016bdb7a

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

[CL 16882856 by florin pascu in ue5-release-engine-test branch]
2021-07-19 09:12:09 -04:00
florin pascu
5c1e32c73c RG11B10 + SceneDepthAux 16/32F + Alpha Propagate
For Forward ES31
 Default SceneColor RG11B10 + R16F\32F Depth texture
 With PropagateAlpha on RGBA16F + R16F\32F
 PostProcess we sample SceneDepthAux for Depth
For Deferred ES31
 SceneDepthAux only for Metal
 PropagateAlpha not working yet
 PostProcess we sample SceneDepthTexture for Depth

cvar to change Depth texture from 16 to 32Fr.Mobile.SceneDepthAux
cvar for AlphaPropagate r.Mobile.PropagateAlpha
#jira UE-98033
#rb Dmitriy.Dyomin, Carl.Lloyd, Jack.Porter

#ROBOMERGE-SOURCE: CL 16644095 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16644108 by florin pascu in ue5-release-engine-test branch]
2021-06-11 13:47:20 -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