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]
- Moved them into SDK.json
- Fixed up some deprecation warnings when tarrgeting macOS 13
- IOS is still using old .ini project setting method
#rb adam.kinge, carl.lloyd, zack.neyland
[CL 31651333 by josh adams in ue5-main branch]
- Available on SM6
- Disabled with config
- Includes support for heap allocations on Metal, enabled by default, can be disabled with -nometalheap
#rb Luke.Thatcher, Chris.Waters, Laura.Hermanns
#jira UE-204112
[CL 31531113 by carl lloyd in ue5-main branch]
- Some static variables made it tricky, so added some support to make it simpler on users of the static variables
#rb David.Harvey
[CL 31431441 by josh adams in ue5-main branch]
- Added Mac PlatformPreviews so it can end preview mode (which needs a maching PP to the host platform)
#rb mihnea.balta
[CL 29805771 by josh adams 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]
On a Mac keyboard pressing just "delete" will act as a "backspace" on windows or linux, and pressing "function+delete" will act as "delete" on windows or linux.
There is no behavioral change here, but it provides the option to change what it is and supports more platforms then just Mac.
#jira UE-190154
#rb zack.neyland
[CL 26810634 by ben hoffman in ue5-main branch]
We don't actually support ISR on Mac yet, so disable this until we get this stood up
#jira UE-189718 UE-174004
#rb Zack.Neyland
#rnx
[CL 26734651 by robert srinivasiah 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]
- Disable COMPILER_SUPPORTS_WAVE_VOTE for Mac
- Fixed bug where Texture2DArray was flattened due to atomics, but bound as Texture2D
- Fixed bug where defines were read incorrectly in shader compiler
#rb Zack.Neyland, Jamie.Hayes
[CL 26291315 by carl lloyd 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]
- 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
[CL 26150552 by josh adams 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]