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]
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]
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]
- 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]
- 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]
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]
- 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]
- 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]
- 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]
- 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]
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485
[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]