- This feature allows different chunk layout on different platforms.
- Most mapping work is done in AssetRegistryGenerator.
- Terminology of ChunkID and Pakchunk Index are now separated and they are no longer the same if chunk id to pakchunk index mapping is defined. The ChunkIDs in FAssetData is not renamed to keep consistency, but it actually is pakchunk index. FAssetData.ChunkIDs is used for ChunkInstall.
- Chunks with encryption key guid or unique assetregistry name are not allowed to be mapped. There are code to filter out those chunks and log errors while initializing mapping
- CheckChunkAssetsAreNotInChild() and ResolveChunkDependencyGraph() is skipped when making build for XboxOne and PS4, since they are not needed. If for some reason, we need chunk dependency on console builds, we need to implement per-platform dependency graph, since now we support different chunk layout on different platforms.
- Disabled a few pak file overide rules for console builds, since they should only be applied to builds with Kairos chunk layout.
#test A preflight was kicked and tested on PS4 and XboxOne. No new issue was found.
#rb Daniel.Lamb
#ROBOMERGE-SOURCE: CL 5470414 via CL 5474050
[CL 5474308 by hongyi yu in Main branch]
#rb none
#jira UE-71589
#ROBOMERGE-SOURCE: CL 5415631 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5415651 by mark satterthwaite in Main branch]
#jira UE-33401
#rb john.mauney
#ROBOMERGE-SOURCE: CL 5340798 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)
[CL 5340840 by peter sauerbrei in Main branch]
- All Buffer<>/RWBuffer<> objects are now bound as texture2d or texture_buffer, unless they are 3-component, in which case they are bound as raw T* buffer pointers.
- 3-component Buffer/RWBuffer objects should now work - Metal needed to use packed_* types internally as normal 3-component types in Metal are the same size as 4-component types which is different to HLSL. This is untested as we have no such example.
- Texture Gather/GatherCompare operations have been fixed and should now work.
- Remove all the TypedBufferFormat function-constant specialisation infrastructure and metadata as it is no longer necessary.
- Remove all the raw-conversion for 1, 2 and 4 component vector types as it is no longer required.
- Fixed input qualifiers (centroid, linear, etc.) for Fragment shader inputs - they should now work.
- Remove a bunch of Metal specific shader changes due to buffer type casting and swizzling that will now just work.
- Use the BGRA vertex format for FColor on Metal when available (everywhere but iOS/tvOS 10 using Metal 1.2).
- Simplify ShouldCompilePermutation & similar functions now that we have fewer versions to support.
#rb none
#jira N/A
[CL 4729845 by Mark Satterthwaite in Dev-Rendering branch]
- Added IsMetalMobilePlatform, IsMetalMRTPlatform & IsMetalSM5Platform to simplify testing shader platforms.
- Twiddled the shader compiler to emit the correct min-OS flags to compile for iOS and tvOS.
#rb none
#jira UE-64891
#ROBOMERGE-SOURCE: CL 4488318 in //UE4/Release-4.21/...
#ROBOMERGE-BOT: RELEASE (Release-4.21 -> Release-Staging-4.21)
[CL 4488329 by mark satterthwaite in Staging-4.21 branch]