Commit Graph

104 Commits

Author SHA1 Message Date
Dmitriy Dyomin
038d909044 Support shading models for mobile deferred path when static lighting is disabled
#rb wei.liu
#jira none
#preflight 627b5f586842238976719cc3

[CL 20134438 by Dmitriy Dyomin in ue5-main branch]
2022-05-11 03:17:42 -04:00
Dmitriy Dyomin
f819c89c21 Support shading models in a mobile deferred shading path. Disabled by default
Requrements:
iOS: A8+
Android VK: more than 4 color attachements, more than 4 input attachments
Android GL: Unsuported - PLS seem to be limited to 128bits on most devices
#rb wei.liu
#preflight 625f866b9c09ef439db7612b

[CL 19861367 by Dmitriy Dyomin in ue5-main branch]
2022-04-22 01:15:27 -04:00
Josh Adams
58608fb18c - When FShaderPlatformCachedIniValue looks up a value for the current running ShaderPlatform, use the platform's own value, even if ShaderPlatformToPlatformName returned a different platform (like Vulkan will return Windows, even when running on Linux)
#jira UE-149568
#rb brandon.schaefer
#fyi jack.porter
#preflight 62605d3f73187d30d0c05192

[CL 19836675 by Josh Adams in ue5-main branch]
2022-04-20 15:48:43 -04:00
andrew lauritzen
5c18f11869 Fix up VSM compile permutation logic to not depend on the runtime variable
#preflight 625f48625f498a37c9360330
#rb jason.nadro

[CL 19832583 by andrew lauritzen in ue5-main branch]
2022-04-20 12:34:59 -04:00
Wei Liu
04d7580d62 Clustered local lights and reflections are supported on mobile forward and deferred.
Local light shadows are supported on mobile forward and deferred, need to enable full depth prepass to generate the ShadowMaskTexture.

Remove the 4 maximum local lights limitation on mobile forward.

Remove the "High Quality Reflection" on mobile forward.

Disable simple lights on mobile forward.

#jira UE-149064

#rb Dmitriy.Dyomin

#preflight 625d17da772cf82d3a6059a6

[CL 19784597 by Wei Liu in ue5-main branch]
2022-04-18 09:09:40 -04:00
Sebastien Hillaire
ab609c73b5 Add support for distance field shadow on water.
Storing water in gbuffer and runnign extra lighting pass would be too expenssiv. So instead, when in deferred, single layer water always output the main dir light luminance into a separate 111110 texture.
DF shadow is applied on that texture. DFShadow culling step is cached the first time for a given view in order to be able to reapply DFShadow later with a depth buffer containing water. This save 0.4ms on a base console.
DFShadow is naturaly skipped if the directional light does not have that feature enabled.
When DFShadow is executed, it is basically 0.24ms extra on a base console @ 1080p.
The separated light buffer is an extra 8MB allocated when in deferred.
This only works with deferred for now (forward does not run the reflection/composite pass).

Render target slot assignement is a bit fuzzy but this is a mostly static setup so should be fine. And could change with Strata down the line.

r.Water.SingleLayer.ShaderSupportDistanceFieldShadow is to enabled dfshadow on water for the shaders. Defaults to 1 and will only be enalbed when using deferred and when distance fields are enabled.
r.Water.SingleLayer.DistanceFieldShadow is a runtime toggle of the feature (if enabled the shaders still output to the separate light render target, but that is simply discarded).

Follow up: tile upsample, tile traceshadow, make it work with strata.

Tested shooter and console.

#rb Tiago.Costa, Kevin.Ortegren
#preflight https://horde.devtools.epicgames.com/job/62457ad79f404234145cd424

[CL 19613312 by Sebastien Hillaire in ue5-main branch]
2022-04-04 15:03:48 -04:00
dmitriy dyomin
d5741f624b Added option to disable usage of a baked landscape mesh on mobile platforms (r.Mobile.LandscapeMesh)
#rb jack.porter

#ROBOMERGE-OWNER: dmitriy.dyomin
#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 19528072 via CL 19528235 via CL 19528695 via CL 19528703
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v937-19513599)

[CL 19532768 by dmitriy dyomin in ue5-main branch]
2022-03-28 16:28:57 -04:00
tiago costa
a58feab15a Support creating nanite mesh BLAS using procedural primitive instead of proxy.
- Can be enabled using r.RayTracing.Nanite.ProceduralPrimitive
- Currently uses a single AABB geometry for the whole mesh so can only support one material.

#preflight 6231fddbe2541b4ff3b188b2
#rb aleksander.netzel

[CL 19410198 by tiago costa in ue5-main branch]
2022-03-16 15:21:46 -04:00
graham wihlidal
04ad083c9d Removed Nanite and Virtual Shadow Map support for DirectX 11 + vendor extensions.
Nanite/VSM requires DX12 Agility SDK (Windows 10, 1909 or higher), latest GPU drivers, and support for Shader Model 6.6 atomics.

#preflight 62301d802a256c4b8c27631e
#jira UE-146136
#rb brian.karis, christopher.waters, andrew.lauritzen
[FYI] michal.valient, rune.stubbe, ola.olsson, jamie.hayes

#ROBOMERGE-OWNER: graham.wihlidal
#ROBOMERGE-AUTHOR: graham.wihlidal
#ROBOMERGE-SOURCE: CL 19396949 in //UE5/Release-5.0/... via CL 19399888
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19403800 by graham wihlidal in ue5-main branch]
2022-03-16 03:50:13 -04:00
ola olsson
b5219b04e6 Remove Geometry Shader path for point-light shadow rendering, disable point light shadows if VertexShaderLayer is not supported (at runtime).
- Add r.Shadow.DetectVertexShaderLayerAtRuntime to make it possible to force (for DX11/12/SM5/Vulkan) compilation of vslayer despite RHISupportsVertexShaderLayer being false.
- Set r.Shadow.DetectVertexShaderLayerAtRuntime in WindowsEngine.ini,WinGDKEngine.ini & LinuxEngine.ini.
- Add DoesRuntimeSupportOnePassPointLightShadows to determine support at runtime.
- Fix bug excluding Nanite meshes from DF shadows for local lights if VSM is enabled (now only affects directional lights).
- Add OnGetOnScreenMessages to enable modular generation of on-screen messages in the scene renderer (aimed at transient rendering processes).

#rb arciel.rekman,andrew.lauritzen
#jira UE-138933
#preflight 61f3c967da54035207f6e560

#ROBOMERGE-AUTHOR: ola.olsson
#ROBOMERGE-SOURCE: CL 18769670 in //UE5/Release-5.0/... via CL 18769671 via CL 18769765
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18769767 by ola olsson in ue5-main branch]
2022-01-28 06:36:41 -05:00
zak middleton
36c99f6887 #ue5 - LWC: FVector4f <-> FVector4d conversion is now explicit.
FLinearColor has also been modified to make any double->float conversions explicit. Previously all 3D TVector versions were allowed to be implicit and thus could convert TVector<double> => FLinearColor => TVector4<float>.

Fixed up all engine and game casts. Added "//LWC_TODO: precision loss" around any explicit casts that previously were silently explicit and we may need to revisit for precision loss analysis.

#jira UE-122085
#rb Ben.Ingram, Andrew.Davidson
#preflight 61f24af473238441cb7bb0f1

#ROBOMERGE-AUTHOR: zak.middleton
#ROBOMERGE-SOURCE: CL 18751249 in //UE5/Release-5.0/... via CL 18751253 via CL 18751319
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18751326 by zak middleton in ue5-main branch]
2022-01-27 03:30:41 -05:00
florin pascu
4d9dfc23c2 Remove IsMobileDistanceFieldShadowingEnabled
#jira UE-131828
#rb Dmitriy.Dyomin
#preflight 61deba60b97cb66880a7dd5d

#ROBOMERGE-AUTHOR: florin.pascu
#ROBOMERGE-SOURCE: CL 18582840 in //UE5/Release-5.0/... via CL 18582843 via CL 18582847
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18582850 by florin pascu in ue5-main branch]
2022-01-12 06:47:06 -05:00
josh adams
204c73650c - Allow for FShaderPlatformCachedIniValue on non-editor platforms - it will enforce that it can only look up it's own value
- Whenever looking up the running platform, just use the CVar's value directly instead of parsing ini values
#jira UE-138392
#rb arciel.rekman
#p4v-preflight-copy 18520954
#preflight 61d5f3c6d17842e547bbd280

#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 18524243 via CL 18524264 via CL 18524271 via CL 18524273 via CL 18524712 via CL 18524733
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18524741 by josh adams in ue5-release-engine-test branch]
2022-01-05 16:35:11 -05:00
josh adams
53cd7b2d58 - Fixed up some issues with other platform cvars:
- allow for FConsoleVariableRefs to have other platforms
  - dpreload now clears out cached cvar values and also expanded cvars inside the deviceprofiles
#jira UE-137816, UE-138032
#preflight 61d3bcf2c73b7e46b258511f
#rb francis.hurteau
#p4v-cherrypick 18514921
#p4v-cherrypick 18515238

#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 18515847 via CL 18515849 via CL 18516128 via CL 18516130
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18516132 by josh adams in ue5-release-engine-test branch]
2022-01-04 23:02:35 -05:00
jeanfrancois dube
86d9ce38a3 Fix crash starting Editor when trying to retrieve an inexisting platform cvar.
#rb none
[FYI] josh.adams
#preflight none

#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 18483973 in //UE5/Release-5.0/... via CL 18483976
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18483977 by jeanfrancois dube in ue5-release-engine-test branch]
2021-12-17 08:52:15 -05:00
josh adams
a46a20f612 - Fixing compile errors after robomerge happened
#rb trivial
#preflight skip

#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 18483084 via CL 18483085 via CL 18483219 via CL 18483230
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18483243 by josh adams in ue5-release-engine-test branch]
2021-12-17 00:28:13 -05:00
josh adams
5953f4ad9f - Added ability to get a CVar's value for another platform (IConsoleVariable::GetPlatformValueVariable()), which gets another IConsoleVariable that contains the value
- Added console command syntax for viewing the value from the editor (<CVarName>[at]<PlatformName>)
- Converted FShaderPlatformCachedIniValue to use the new system (which will give a better possible value on the target platform). Eventually, this can be replaced with direct calls to GetPlatformValueVariable(ShaderPlatformToPlatformName(SHaderPlatform))
#p4v-preflight-copy 18268687
#preflight 61ba5a7aed09cd864b35372b
#rb arciel.rekman

#ROBOMERGE-OWNER: josh.adams
#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 18476914 via CL 18479791 via CL 18482819 via CL 18482821 via CL 18483214 via CL 18483227
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18483239 by josh adams in ue5-release-engine-test branch]
2021-12-17 00:27:52 -05:00
arciel rekman
f302f8f030 Fix CVars not being picked up from other sections (UE-135567).
- Some projects put rendering CVars in other sections than RendererSettings.

#jira UE-135567
[at]Josh.Adams, [at]Dmitriy.Dyomin
#rb Josh.Adams, Dmitriy.Dyomin

#ROBOMERGE-AUTHOR: arciel.rekman
#ROBOMERGE-SOURCE: CL 18270117 in //UE5/Release-5.0/... via CL 18270123
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18270137 by arciel rekman in ue5-release-engine-test branch]
2021-11-23 10:17:56 -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
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
jeannoe morissette
f8be752ac4 Enable VSMs on Vulkan
#rb Mihnea.Balta

#ROBOMERGE-AUTHOR: jeannoe.morissette
#ROBOMERGE-SOURCE: CL 17664411 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0

[CL 17664484 by jeannoe morissette in ue5-release-engine-test branch]
2021-09-29 13:46:51 -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
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
michael noland
f469871b17 Type truncation warning fixes for some RenderCore and RHI headers
[CODEREVIEW] Rolando.Caloca
#jira UE-116218

#ROBOMERGE-AUTHOR: michael.noland
#ROBOMERGE-SOURCE: CL 17578876 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17578886 by michael noland in ue5-release-engine-test branch]
2021-09-20 22:59:26 -04:00
arciel rekman
3243e21ef8 Nanite per-project killswitch with an artist-friendly message.
#rb Rune.Stubbe
[REVIEW] [at]Graham.Wihlidal, [at]Rune.Stubbe
#jira UE-117561
#preflight 611a79b7aabad10001bfd9c6

#ROBOMERGE-SOURCE: CL 17177746 via CL 17177758
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17177765 by arciel rekman in ue5-release-engine-test branch]
2021-08-16 12:55:21 -04:00