While the mobile team wants to keep independent samples disbaled for PCD3D_ES3_1, it makes sense to move this as a platform dependent feature into the DDSPI configuration.
#rb brian.white, christopher.waters, Yuriy.ODonnell
[FYI] Dmitriy.Dyomin, Carl.Lloyd
#rnx
[CL 31764896 by laura hermanns in ue5-main branch]
Support wave size 64 lumen compute inline RT dispatches and enable by default on Android.
Allow use of wave ops as long as they are supported in fragment and compute shaders (Vulkan). Vulkan implementation on Android typically don't support it in vertex and geometry stage.
#jira UE-200580
#rb Krzysztof.Narkowicz
[CL 31103364 by florian penzkofer in ue5-main branch]
OpenGL ES and Metal use framebuffer fetch.
Vulkan uses dual source blending.
For Vulkan and OpenGL ES there is a fallback shader permutation for drivers that don't support this. The fallback is the same as the existing solution that uses regular blending (i.e. looks different).
Others uses dual source blending and we force use of DXC for those shaders.
#rb Dmitriy.Dyomin, Florin.Pascu
[CL 29245271 by florian penzkofer in ue5-main branch]
Platforms that do support uniform buffer objects can now provide batched primitive data through UBO. There is a limit UBO range that can be accessed in shaders, so we group instances into batches that fit into this limit. Switch uses 64KB views, other platfroms16KB views. For each primitive we allocate 512Bytes and 256Bytes for instance. Mobile platforms that do not support UBO will use a desktop version of GPUScene.
There are a few things that still missing: Dynamic mesh passes, static lighting
#rb ola.olsson, benjamin.rouveyrol
[CL 26354848 by marc audy in ue5-main branch]
* This should be used to guard any features that require explicitly accessing buffer or textures SRVs in vertex shaders
#rb Dmitriy.Dyomin
#rb Kenzo.Terelst
[CL 26207274 by yuriy odonnell in ue5-main branch]
r.ShaderPipelines
r.Material.ExcludeNonPipelinedShaders
Both cvars are currently disable on WindowsEngine.ini which make them also disable when we cook for consoles. ExcludeNonPipelinedShaderTypes is currently used only at cooking time when we compile shaders which is currently returning false, since the value is disabled on windows. Making those cvars use FShaderPlatformCachedIniValue, will allow to have specific platform value when cooking for a specific target. Moving r.Material.ExcludeNonPipelinedShaders to the defaultengine.ini file to keep it disable for the moment and not affecting shader key string. Will enable it progressively on console later.
r.Shaders.RemoveUnusedInterpolators
Make that cvar platform agnostic, since it will be used in on other consoles eventually. Platforms supporting the stripping of unused interpolators will check the same flag (CFLAG_ForceRemoveUnusedInterpolators) to enable it. Since windows can run opengl, and stripping is not supported on that shader platform, add extra logic to exclude the flag.
-Make the RHISupportsShaderPipelines function access a real DDPI attribute and not just test if we are not on mobile. Will need this to be able to have stripping unused shader interpolators on Switch.
[REVIEW] Laura.Hermanns
[CL 26018371 by serge bernier in ue5-main branch]
Added bSupportsClipDistance to DDSPI for mobile shader platforms that support SV_ClipDistance
#jira UE-169583
#preflight 638effe61776b8c21c7a95b2
[CL 23421785 by florin pascu in ue5-main branch]
- GetFriendlyShaderPlatformName removed
- RHIShaderPlatformDefinitions.inl deleted
- Added FriendlyNames to all ShaderPlatforms in DDSPI
- MenuText now comes from FriendlyNames in DDSPI
#rb Jack.Porter
#jira none
#preflight 632b1f8c826e0c2fe9a9d5d2
[CL 22118730 by florin pascu in ue5-main branch]
Changed ShaderArchive, GlobalShaderCache, ShaderDebugInfo and Autogen to use ShaderPlatformName and not ShaderFormat when naming their output files.
#rb Jack.Porter, Chris.Waters, Mihnea.Balta, Jason.Nadro
#jira UE-120561
#preflight 62c31f6fc9410537282296c6
[CL 20937870 by Florin Pascu in ue5-main branch]
UAT RunClient: Continuously redirect output to uat stdout while client is running.
UAT RunClient: Add a process wrapper to kill client process when uat exits and to write the adb device log file to the host pc directories.
UAT RunClient: Push the ClientCmdLine args as a UECommandLine.txt file to the device to the correct location (different for adb deploy and android file server) to override the stage/apk command line.
UAT MakeApk: Add a UECommandLine.txt cache file to the intermediate directory to invalidate the apk when the stage/apk command line changes (e.g. when switching between CBTB or COTF or cooking with/without Zen).
LaunchAndroid.cpp: Add debug output for which override command line file that is being used.
LaunchAndroid.cpp: Implement missing -waitforattach/-waitfordebugger feature.
DataDrivenPlatformInfo.ini: set bUATClosesAfterLaunch=false to stop the editor from passing -nokill to uat to let it stop all processes when the client exits..
#jira none
#rb chris.babcock
#rnx
#preflight 6245849873665f7d5e4f0a18
#preflight 624be1f3dc6183e3f5518801
[CL 19621549 by PJ Kack in ue5-main branch]
Android_Preview_OpenGL sets FX.AllowGPUSorting to be consistent with device
FX.AllowGPUSorting has ECVF_Preview flag now to allow this
#rb Allan.Bentham
#jira UE-141586
#preflight 620532fc9d0b224b895f11a3
#ROBOMERGE-AUTHOR: florin.pascu
#ROBOMERGE-SOURCE: CL 18937062 in //UE5/Release-5.0/... via CL 18937617 via CL 18938152
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)
[CL 18938190 by florin pascu in ue5-main branch]