Metal 2.3 removed, Metal 3.0 added for Mac
#jira UE-163352
#rb adam.kinge bertrand.carre
#preflight 631ea7eb94758d0bf2008668
[CL 21960671 by axel riffard in ue5-main branch]
- Refactoring FShaderParameterParser to use more string views since we can rely on OriginalParsedShader not changing.
- Split FShaderParameterParser::ParseAndMoveShaderParametersToRootConstantBuffer into smaller functions
- Moving FShaderParametersMetadata::IterateShaderParameterMembers into the only module it's used in, ShaderParameterParser.cpp
- Adding CFLAG_BindlessResources which will be set when ENABLE_BINDLESS_RESOURCES is set
- Adding CFLAG_BindlessSamplers which will be set when ENABLE_BINDLESS_SAMPLERS is set
- Adding resource/sampler detection and conversion to bindless in FShaderParameterParser
#jira UE-139616
#rb guillaume.abadie, jeannoe.morissette, yuriy.odonnell, laura.hermanns
#preflight 62d180cce468fcfd0b7001a0
[CL 21111994 by christopher waters 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]
- AGXRHI development is now occurring in a separate branch/stream.
- Relocate Engine/Source/Runtime/Apple/Common/Public/* -> Engine/Source/Runtime/Apple/MetalRHI/Public/*
- Update module dependencies, etc.
#rb will.damon
#jira none
#rnx
#preflight 62b610597c36e130975e1332
[CL 20817379 by will damon in ue5-main branch]
- Devices crashing when using Base_Vertex metal shader semantics
- Runtime error when using Virtual Texturing on A8 devices which is unsupported.
#jira UE-131863, UE-132217
#rb Will.Damon
[FYI] Jack.Porter
#preflight 62a75ad63d0a713cf8caf486
#ROBOMERGE-AUTHOR: carl.lloyd
#ROBOMERGE-SOURCE: CL 20631592 in //UE5/Release-5.0/... via CL 20649245
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)
[CL 20656300 by carl lloyd in ue5-main branch]
- Consume Uniform then UAV buffer slots first.
- Don't use up a buffer slot for texel buffers as we should be using texture buffers for these now.
- If we are not using a buffer slot for the same texel slot index then don't attempt to bind the underlying SRV buffer when binding the SRV texture otherwise it'll stomp on other in use buffer slots.
- Use CountTrailingZeros64() when referencing TextureIndices as that is a 64bit type.
#jira UE-141595
#preflight 620e3612fe76023596bd3e52
[REVIEW] [at]will.damon, [at]laura.hermanns
#rnx
#lockdown cristina.riveron
#ROBOMERGE-AUTHOR: richard.wallis
#ROBOMERGE-SOURCE: CL 19116483 in //UE5/Release-5.0/... via CL 19117285
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)
[CL 19153361 by richard wallis in ue5-main branch]
It is possible to use the -sandbox= option to mount an alternative file system location from which to load data. On desktop platforms, if the -sandbox= is not specified then Saved/Cooked/[Platform] is implicitly created as a sandbox. This allows runtime binaries to run off cooked data and negate the need to stage. When cooking, the Metal shader compiler creates shader libraries with files in title case. UAT will convert these into lowercase when staging. The Metal RHI is unable to load the cooked libraries as it assumes it is loading lowercase ones from staged data. This change makes sure that all shader libraries are always lowercase. Secondly, the paths to .metallib files where preprocessed in a such a way that bypassed the sandbox file system, resulting in an incorrect native path. Now the API used to convert from IPlatformFile paths to native ones is always used such that sandboxing will get taken into account.
#jira UE-133202
#rnx
#rb will.damon
#preflight 61e7d989f517d721f993c82f
[CL 18656074 by Martin Ridgers in ue5-main branch]
#jira UE-131184
#jira UE-124744
#rb jack.porter
#[fyi] will.damon carl.lloyd axel.riffard
#preflight 618e2f249e784835d570d871
#ushell-cherrypick of 18165990 by axel.riffard
[CL 18598774 by will damon in ue5-main branch]