#jira UE-151249
#rb Zak.Middleton
#ushell-cherrypick of 20130528 by dmytro.vovk
#preflight 627ae02e68422389764e57c5
[CL 20131539 by dmytro vovk in ue5-main branch]
### Features
We can now write tailing memory to a utrace file. Snapshotting while tracing to a file or socket is supported.
This change introduces a new console command: Trace.SnapshotFile. It writes the profiling data from memory into an optionally specified a utrace file.
### Testing
Run Editor with -tracefile
Run Editor with -trace, connect live with insights
Run Editor without -trace (this does generate a very small utrace since there is memory and data in the tail even though default channels are not enabled)
#rb johan.berg
#jira UE-150302,UE-150292
#preflight 6272a3213e1f2a9d3a88ee3d
#ROBOMERGE-OWNER: geoff.evans
#ROBOMERGE-AUTHOR: geoff.evans
#ROBOMERGE-SOURCE: CL 20124258 via CL 20125717 via CL 20126082
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20129506 by geoff evans in ue5-main branch]
Improved very large page allocator to keep alive FreeList upon a certain amount of frames. this to prevent physical memory fragmentation
[REVIEW] [at]rob.millar, [at]eric.mcdaniel, [at]david.harvey
[FYI] ben.woodhouse, dave.barrett, john.huelin
#rnx
#ROBOMERGE-AUTHOR: mickael.gilabert
#ROBOMERGE-SOURCE: CL 20122059 via CL 20122066 via CL 20122077 via CL 20122086
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20123982 by mickael gilabert in ue5-main branch]
[REVIEW] [at]peter.sauerbrei
#localization none
#tests local
#ROBOMERGE-AUTHOR: joe.barnes
#ROBOMERGE-SOURCE: CL 20118306 via CL 20118381 via CL 20118509 via CL 20118533 via CL 20118567
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20119171 by joe barnes in ue5-main branch]
#rb ben.ingram
#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 20115901 via CL 20115948 via CL 20115961 via CL 20115990
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20117747 by robert millar in ue5-main branch]
- Object Reader conversion to use shader structures
- Neighbor Grid 3D conversion to use shader structures
#rb michael.galetzka
#jira none
#preflight 6275a329f77c9c2b5440dfc9
[CL 20115249 by Stu McKenna in ue5-main branch]
- Fix for FFileHelper::SaveStringToFile not closing a file handle
#rnx
#rb Jared.Cotton
#rb YiLiang.Siew
#preflight 627961c4a35fb5cb3f54e42a
#ROBOMERGE-AUTHOR: stanley.hayes
#ROBOMERGE-SOURCE: CL 20110449 via CL 20110971 via CL 20111930 via CL 20112187
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20114367 by stanley hayes in ue5-main branch]
- Moved the IniCacheSet into the FConfigContext, and out of FConfigCacheIni. We could possibly get rid of it now entirely with the reduced number of paths we look for (and the fact that plugin scanning will be multithreaded soon)
- Removed the TRUEENGINE workaround now that Plugins are using a context to load the file, this makes the workaround unnecessary since plugins don't fake the EngineConfigDir
#rb jon.nabozny
#preflight 627959cf242446ce6c637258
#jira UE-151373,UE-151376
[CL 20108089 by Josh Adams in ue5-main branch]
- Added actor tags to actor descriptors so they can be queried for unloaded actors.
- Added filtering by actor tags in WorldPartitionResaveActorsBuilder.
#rb patrick.enfedaque, richard.malo
#preflight 62751614e31cfc52d5aea104
#rnx
#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 20074269 via CL 20074279 via CL 20074282
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20105943 by jeanfrancois dube in ue5-main branch]
Deprecate the "ComponentToControl" property of the LiveLinkComponentController
Add a customization for LiveLinkControllerBase that ensures the Component picker is displayed first in the details panel
Fix the fallout from the deprecation in USDImporter plugin
#jira UE-147579
#rb simon.therriault, daniel.coelho
#preflight 62790eb24561731dbeee939d
[CL 20101534 by Geoffrey Douglas in ue5-main branch]
Can now provide reference iostore containers to reuse compressed chunks from. If a match is found on *the decompressed data*, instead of recompressing the blocks, they are read off of disk. This allows tweaks of the compressor algorithm without introducing changes as the runtime still sees the exact same data. Additionally this allows for fairly dramatic staging speedups as nvme speeds are significantly faster than high effort compressions. This is distinct from the DDC compression because:
1) DDC compression ties in the compressor version/method
2) We are explicitly interested in chunks that are deployed to end users, not merely cached for speed.
To facilitate this, several changes were made to IoStore:
FIoStoreReader now directly reads from IFileHandles* instead of routing through the GenericPlatformFile async read system, as that system is sensitive to build #defines and can result in constant file opens under load (indeed, for anything not a .pak file, every read is an open/close).
Cold file cache read speed improvements from ~140MB/s to ~1 GB/s. Hot is more.
Additionally:
FIoStoreReader switched to UE::Tasks from taskgraph for tasks in order to facilitate task retraction during waits as the previous ReadAsync call was trivial to deadlock when called from worker threads due to its use of TFuture<>.
FIoStoreReader::ReadCompressed now returns the compressed blocks as they were on disk - padded to AES encryption block size.
#rb fabian.giesen
#rb jeff.roberts
#preflight 627586dcf77c9c2b543d4d8b
[CL 20086673 by Dan Thompson in ue5-main branch]
- Convert VectorField DI to Shader Parameters
- Convert CurlNoise DI to Shader Parameters
- Convert Camera DI to Shader Parameters
- Convert Occlusion DI to Shader Parameters
#rb simon.tovey, rob.krajcarski
#jira none
#preflight 627468a3f9623aee676a827b
[CL 20077368 by Stu McKenna in ue5-main branch]