Live++ reads object files at startup for game modules, and assigns unique ids to each compiland (used to disambiguate static variables). When compiling the patch, these compilands are modified to reference a unique id for the unity blob, causing the variables to be reconstructed.
Solution is to generate a JSON file to each output directory containing object files containing the mapping, and to use that to assign compiland ids at startup.
#rb none
#jira UE-74036
[CL 6453851 by Ben Marsh in Dev-Build branch]
This manifested itself in a game when textures ended up rebuilding every single run of the game but suddenly stopped building and coming from the DDC as they should have after the first run.
When a texture was being requested from the DDC, the in-memory DDC cache space ran out, and FMemoryDerivedDataBackend::CachedDataProbablyExists() returned true. FDerivedDataBackendAsyncPutWrapper::PutCachedData() assumes the data is already on its way, so it doesn't send it again and exits the function. Unfortunately, the data is not really on the disk, and FCachePutAsyncWorker never gets a chance to put it there.
Because of changing memory requirements from run to run, this game was eventually able to write all of the texture data to disk, but it took dozens of runs to do so, as it generally would only write a single mip from a mipchain in any given run. When all of the mips were finally written, the texture would be fully retrieved from the DDC, and no build would be necessary.
With this fix, no early abort is had, and all textures write themselves fully to the disk.
#rb Jack.Porter
#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: josh.jensen
#ROBOMERGE-SOURCE: CL 6345014 via CL 6346145 via CL 6346238
#ROBOMERGE-BOT: BUILD (Main -> Dev-Build)
[CL 6356295 by josh jensen in Dev-Build branch]
#JIRA UE-74226
#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: ben.salem
#ROBOMERGE-SOURCE: CL 6344919 via CL 6344926 via CL 6345880 via CL 6346025
#ROBOMERGE-BOT: BUILD (Main -> Dev-Build)
[CL 6356049 by ben salem in Dev-Build branch]
Fix functional test UI screenshot when running with a window dpi scale != 1.
#jira UE-60541
#rb Matt.Kuhlenschmidt
#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: dave.belanger
#ROBOMERGE-SOURCE: CL 6327380 in //UE4/Main/...
#ROBOMERGE-BOT: BUILD (Main -> Dev-Build)
[CL 6333337 by dave belanger in Dev-Build branch]
#fix No need to reverse the section indices when a static mesh has a mirrored transform as TransformRawMeshVertexData() is now calling ReverseAllPolygonFacing() in this specific case
#jira UE-56953
#rb none
#lockdown cristina.riveron
#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: sebastien.lussier
#ROBOMERGE-SOURCE: CL 6252335 in //UE4/Release-4.22/... via CL 6317322
#ROBOMERGE-BOT: BUILD (Main -> Dev-Build)
[CL 6323479 by sebastien lussier in Dev-Build branch]
Added new content only build node and now generates pak patch files for pak files not in original build.
Also merges manifest with original build
Also posts build to gamedev and prod
GenerateChunkDBs now takes in two additional parameters specifying how many rollback labels to process and which ones to optimize (preparation for future change where we process more chunkdbs).
Added support for generating buildinfo.ini for ps4.
#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 6278253 via CL 6287210 via CL 6287835
#ROBOMERGE-BOT: BUILD (Main -> Dev-Build)
[CL 6302275 by daniel lamb in Dev-Build branch]