This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971
[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
TESTS
Retested UE-96400
Retested UE-102883
Run WorldPartitionConversion on Apollo_Terrain
#rb Francis.Hurteau
#preflight 609118a48b14da0001dd1ae4
[CL 16191911 by danny couture in ue5-main branch]
#ROBOMERGE-SOURCE: CL 15878156 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
[CL 15878181 by matt kuhlenschmidt in ue5-main branch]
This makes sure we don't generate/save thumbnails for actors.
#rb patrick.enfedaque
#ROBOMERGE-SOURCE: CL 15850345 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)
[CL 15851647 by jeanfrancois dube in ue5-main branch]
Tried reproducing old issues which added this call without success
#rb Danny.Couture
#jira UE-110336
#ROBOMERGE-SOURCE: CL 15669648 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v779-15635321)
[CL 15670904 by francis hurteau in ue5-main branch]
UnrealEdSrv.cpp
Finalize load of package before the rename, to load latent thumbnail data
Borrow a pointer to the thumbnail data before the asset rename
Put thumbnail into new package keyed on new asset name
ObjectTools.cpp
Fixup bad indention (minor)
Testing done
Capture thumbnail of non-art asset and rename
Load project with stored captured thumbnail and rename
#rb francis.hurteau
#jira UE-103987
[CL 14941853 by geoff evans in ue5-main branch]
Cancel async operations on StaticMesh when they are unloaded during world change
Avoid potential crash when closing the editor by properly cancelling async tasks
Use cancellation instead of BlockUntilComplete whenever possible to shorten wait time
#jira UE-102883
#rb Francis.Hurteau
[CL 14768146 by danny couture in ue5-main branch]
- Add protection against async property accessed during async build and postload.
- Split PostLoad into 3 steps with the most part now being made async.
- Make Build/BatchBuild API async when the feature is activated.
- Add a new StaticMesh compilation manager. (This will be refactory later to reduce duplicated code with texture compiler).
- Skip RenderState creation for any static mesh component still being built so they only show up when ready.
- Fixed DistanceField and MeshCard computation that might trigger too soon if fixups are required to RenderData during PostLoad.
- Dynamic priorisation for building and updating static meshes nearest to the viewport.
- Implement different PIE modes, current default is to stall only for mesh that might affect nagivation/collision for players/bots.
- Add a new generic interface for assets being built (still a WIP).
- Add ability in FrontEnd filters to skip serialization of asset being async compiled and refresh when compilation finishes.
- Prevent auto-save while textures and static meshes are being built (same as shaders)
- Logic has been reordered in some Fortnite Building Component to avoid unnecessarily touching static mesh properties.
General Optimizations
- Use cached thumbnails until shaders/textures/static meshes are ready to improve performance and avoid rendering incomplete thumbnails.
DEBUGGING
- Can be forcibly enabled/disabled through command-line via -asyncstaticmeshcompilation=[off, on, paused]
- Can pause staticmesh compilation using Editor.AsyncStaticMeshCompilation = 2 or -asyncstaticmeshcompilation=paused
- Can manually resume a specified amount of paused compilation using Editor.AsyncStaticMeshCompilationResume [Num]
- Can forcibly wait on all compilation using Editor.AsyncStaticMeshCompilationFlushAll
BENCHMARKS
- 2m19s to 17.9s for Loading FortGPUTestbed's LumenTest with an empty local only DDC
- 2h45m to 5mxxs for Loading Reverb's P_World with an empty local only DDC
- 17m29 to 10m27s for Loading Apollo_Terrain_Edit with an empty local only DDC
TESTS
- Loading maps from Reverb, Fortnite, ShooterGame, QAGame, FortGPUTestbed
- Content browser interactions while still under heavy compilation
- Importing with Datasmith / Dataprep
- Working with the new Mesh Modeling Tool
- Shutting down the editor while loading
- Most of EngineTest Test Suite
REFERENCES
- Design https://docs.google.com/document/d/1O4GI1G9AtQN6l0SaGFfXw0DyNhlLunLoEqne5INvxIQ
- Documentation https://docs.google.com/document/d/1KCdFEMhhcsGwfgOisTVwlOwtsmEd7qbB0V6Tc39Gb10
#rb Francis.Hurteau
[CL 14688146 by danny couture in ue5-main branch]