We also noticed that your team has recently released support for this requirement in Unreal Engine 5.6.
We would like to ask about two points as outlined below:
In our case, we are still using Unreal Engine 5.4 for our game. Could you please advise which components or changes we should consider merging from Unreal Engine 5.6 into 5.4 in order to support the 16 KB page size requirement?
Since the 16 KB page size support requires NDK 28 or later, we would like to ask how we can enable this functionality in Unreal Engine when using an older NDK version (we are currently using NDK r25b). Is there any workaround or configuration that allows us to proceed without upgrading the NDK?
I just did it and can confirm that it also works for Unreal Engine 5.3.
For 5.3 some things were a little bit different though.
Here is the additional info for 5.3 for the 6 links from above:
In Engine/Source/ThirdParty/HWCPipe/include/CMakeLists.txt
I also changed cmake_minimum_required(VERSION 3.6) to version 3.13 and target_link_options(hwcpipe PRIVATE -z max-page-size=16384) has to be added to the end of the file as this line did not exist before.
in Engine/Build/Android/Prebuilt/PSOService/Android/CMakeLists.txt target_link_options(psoservice PRIVATE -z max-page-size=16384) has to be added to the end of the file as this line did not exist before.
in Engine/Build/Commit.gitdeps.xml
you actually have to ignore all removed lines that start with <BlobHash or <PackHash. Instead remove the lines starting with <BlobHash or <PackHash found in this commit: https://github.com/EpicGames/UnrealEngine/commit/a73d0e1f9fd4df9b9a795e8afde47da34e6e0fc2
The additions starting with <BlobHash or <PackHash have to be taken from the original commit. I am not sure if this is necessary, but as the hashes are sorted alphabetically I inserted them at the correct position. You can easily do this by searching one of the few lines above or beneath the change. Some of those lines do not exist in 5.3 so if that happens, just pick another until you find one. Then look where it fits alpabetically and insert it.
Only do the changes for: Engine/Source/ThirdParty/GoogleGameSDK/gamesdk/games-frame-pacing/CMakeLists.txt
Omit the other changes from the commit.
Not needed for 5.3
Like in the 5.4 solution
You have to insert the whole function, as it does not exist yet. So just insert the whole static FORCEINLINE int64 GetMemoryMappingAlignment() function at line 127
FPlatformProperties::GetMemoryMappingAlignment() is found twice in the file. Replace both instances with FPlatformMemory::GetStats().PageSize