- Allow for per-project override in a project's platform's config folder (this is merging with my other work on per-project SDKs and validation of multi-target builds)
- More versions will move over after this
#rb david.harvey
#[robomerge][bot5] -FNMain
#ushell-cherrypick of 26150552 by josh.adams
[CL 26152902 by calvin zheng in 5.3 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 26038736 by serge bernier in 5.3 branch]
What:
* Add data support flag for NNE shaders so platforms can opt in to the NNERuntimeHlsl shaders compilation.
Tests:
* NNE smoke test + style transfer demo on: win64 editor, win64 packaged
#rb ue-nni
#rnx
#jira UE-184154
#preflight 6447d1e7c632d1e89bc818f6
[CL 25185875 by florent guinier in ue5-main branch]
These will allow hardware device identifiers to set flags for themselves to identify some common traits that they have, as well as check what kind of support they have. These are config flags, so if a game wants to change what they support for a given input device they can easily do so, as well as add in some custom hardware types if desired.
#jira UE-178452
#rb Michel.Champoux
#preflight 640643bc3206d45d202a6fc0
[CL 24529352 by ben hoffman in ue5-main branch]
Turning bindless samplers back on for PC D3D RayTracing shaders.
#jira UE-171919
#preflight 63f6930826233b957f42b041
#rb chris.kulla
[CL 24372028 by christopher waters in ue5-main branch]
- The config section is the DDSPI ShaderFormat of the shader platform
- BindlessResources and BindlessSamplers can be set independently
- The cvars still exist and will take precedence over the config settings.
- Renamed RHIGetBindlessResourcesConfiguration/RHIGetBindlessSamplersConfiguration to have the word "Runtime" in them to reflect that they should only be used at runtime and not when deciding if it's enabled for a shader.
#jira UE-171919
#rb jason.nadro, yuriy.odonnell, jeannoe.morissette
#preflight 63edaabd0a06073fef07655f
[CL 24282763 by christopher waters in ue5-main branch]
* The CVar can't be used to enable bindless resources per platform
#rb christopher.waters
#preflight skip
[CL 23912269 by Yuriy ODonnell in ue5-main branch]
* The non-bindless code path is planned to be deprecated in the future engine release
#rb christopher.waters
#jira UE-171919
#preflight skip
[CL 23894521 by Yuriy ODonnell in ue5-main branch]
- Disable Nanite mesh shader rasterization when r.AllowGlobalClipPlane=1 if the platform cannot support outputting the global clip plane clip distance from a mesh shader.
#rb rune.stubbe
#rnx
#preflight 63c95a34b0652247502cec7d
[CL 23773278 by jamie hayes in ue5-main branch]
It's disabled on Android because some android devices don't support dual src blending, and it's disabled on IOS because it doesn't work with MRT.
#rb Dmitriy.Dyomin, Florin.Pascu
#preflight 6391f2e7c415e8dc78348c60
[CL 23448042 by wei liu in ue5-main branch]
- Implemented for D3D11 and D3D12, as Mobile Multi View (MMV) fallback on both.
High level summary / notable changes:
- preview shader platforms will get the necessary properties from the desktop shader platforms used to display them
- stereo render target manager will get informed which shader platform the engine is currently using
- regularized somewhat what happens when the editor's preview platform changes (enabling/disabling and activating/deactivating). (Preview system is confusing because it's tri-state: preview platform can be set but not active, which is the same as it not being set). More code can be de-duplicated there.
- Multiview will be considered disabled (for scene textures at least) if, despite ViewFamily requiring it, no View actually has it enabled.
- Patched a bunch of shaders to account for texture array RTs used for MMV (and MMV fallback).
#rb Yuriy.ODonnell
#jira UE-168931
#review
#preflight 638a41d3976b1644cb68d21a
[CL 23377965 by Arciel Rekman in ue5-main branch]
ComputeFramework: Disable on Vulkan platforms using DataDrivenPlatfomInfo
Do this until we fix user defined structures that don't obey Vulkan packing rules.
Avoids crashes on some drivers.
#preflight 6358533ea2609c2fae8b4d10
[CL 22798993 by jeremy moore in ue5-main branch]