Commit Graph

3148 Commits

Author SHA1 Message Date
Francis Hurteau
4f0fd5bf15 Re-enable Save2 for cooking
#rb trivial
#fyi Zousar.Shaker

[CL 14719822 by Francis Hurteau in ue5-main branch]
2020-11-11 11:30:21 -04:00
Christina TempelaarL
a9dd09fc9a Fixed blueprint nativization for SplineComponents/FInterpCurvePoints.
#jira UE-67542
#rb phillip.kavan

[CL 14713419 by Christina TempelaarL in ue5-main branch]
2020-11-10 17:16:52 -04:00
danny couture
3e4affd3e0 Allow async compilation to take place in Editor when starting in -game mode
- Allow multi-threaded bulkdata reading even when EDL is turned on

#rb Paul.Chipchase

[CL 14700046 by danny couture in ue5-main branch]
2020-11-10 11:31:12 -04:00
Francis Hurteau
6ca2cb8e82 Move setting GIsSavingPackage in Save2 to after reference gathering
#rb Zousar.Shaker

[CL 14699340 by Francis Hurteau in ue5-main branch]
2020-11-10 10:03:12 -04:00
danny couture
c23f6884fe Async Static Mesh Compilation / Loading
- 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]
2020-11-09 07:50:34 -04:00
Devin Doucette
c9f320e334 SharedBuffer: Extended shared buffer with an optional outer buffer and optional buffer owner
MakeView now has overloads that accept an outer shared buffer that it will hold a reference to and inherit the read-only state from. The view must be contained by the outer shared buffer.

TakeOwnership now has overloads that accept an instance of a type derived from FSharedBuffer::FBufferOwner that will be moved and stored to manage the lifetime of the buffer when a delete function is insufficient.

Functions that create buffers now return pointers instead of references, for more optimal reference counting. ToSharedRef can be called on the return value to convert it to a reference in cases where that is useful.

#jira none
#rb Zousar.Shaker
#rnx

[CL 14680479 by Devin Doucette in ue5-main branch]
2020-11-06 16:01:46 -04:00
Francis Hurteau
83febb3b86 Make sure the package localization cache is up to date before going in the GIsSavingPackage block in Save2
#rb Jamie.Dale
#jira UE-101268

[CL 14680029 by Francis Hurteau in ue5-main branch]
2020-11-06 15:51:51 -04:00
Francis Hurteau
e2d71cc438 Turning Save2 back off until some fixes are adressed.
#rb trivial
#fyi Zousar.Shaker

[CL 14677743 by Francis Hurteau in ue5-main branch]
2020-11-06 12:50:11 -04:00
Francis Hurteau
ff77076dfb Activate Save2 on cook by default
Activate Save2 everywhere on QAGame

#rb Matt.Peters, Zousar.Shaker

[CL 14664664 by Francis Hurteau in ue5-main branch]
2020-11-05 10:21:40 -04:00
Matt Peters
fb17a69e3d SavePackage private object errors: Identify private archetypes as the MostLikelyCulprit. Always print out the MostLikelyCulprit when running a commandlet rather than prompting.
#rb Zousar.Shaker
#rnx

[CL 14654440 by Matt Peters in ue5-main branch]
2020-11-04 13:35:45 -04:00
Francis Hurteau
5d34df4e57 Small Misc changes for Save2:
* Modified EnableNewSave cvar to use multiple values: 0: disabled, 1: enabled for cook, 2: enabled for uncooked, 3: enabled everywhere
* Added proper Prestream Packages support to Save2 since it isn't something that will be deprecated in the end
* Fixed new package not being saved properly when passing in a Base Object because they aren't properly marked as fully loaded in Save1
* Added a way for SaveConcurrent to use serial save with Save1 for now when not being passed in the SAVE_Concurrent flag
* Switched Save2 traces to use the SaveTimeChannel like Save1

#rb Matt.Peters

[CL 14652312 by Francis Hurteau in ue5-main branch]
2020-11-04 10:47:45 -04:00
daren cheng
4ec48c9820 Edigrate 14629275.
Capture callstack in widget invalidation for leaf widgets.

#jira UE-101687
#rb Patrick.Boutot Phillip.Kavan

[CL 14631340 by daren cheng in ue5-main branch]
2020-11-02 14:48:49 -04:00
Zousar Shaker
7b6269efb4 Enable package access tracking for use in cook-time dependency tracking.
#rb trivial

[CL 14629528 by Zousar Shaker in ue5-main branch]
2020-11-02 13:35:35 -04:00
Zousar Shaker
5fc6103944 New call-site and systematic upgrades needed in Main stream for Engine+ShooterGame scalar property upgrades to Wrapped Object Pointers.
#rb devin.doucette

[CL 14629475 by Zousar Shaker in ue5-main branch]
2020-11-02 13:28:33 -04:00
danny couture
2e353e5415 Improve output of UObject referenced by FGCObject
#rb Robert.Manuszewski

[CL 14628013 by danny couture in ue5-main branch]
2020-11-02 10:46:50 -04:00
Marc Audy
68150e0be7 Merge UE5/Release-Engine-Staging to UE5/Main @ 14611496
This represents UE4/Main @ 14594913

[CL 14612291 by Marc Audy in ue5-main branch]
2020-10-29 13:38:15 -04:00
Francis Hurteau
6edea269f6 Fix save discrepencies between save2 and save1 by allowing objects of transient classes
Add an additional check in the linker diff commandlet to check the old save algo against itself and catch potential save byproduct
Add a consistent vs algo linker diff mode for the cooker, consistent mode will detect save byproduct on the same save algorithm while algo mode will compare the two algorithm

#rb Devin.Doucette

[CL 14593292 by Francis Hurteau in ue5-main branch]
2020-10-27 17:50:10 -04:00
Jason Bestimt
334f99465e Fixes for HL2 compile.
- ObjectPtrTest was just checking for windows.  HL2 falls into the same category
- D3D12RHI.cs now has AGS properly so that D3D12RootSignature includes process correctly

#RB:none
#CodeReview: steve.smith

[CL 14587450 by Jason Bestimt in ue5-main branch]
2020-10-27 10:46:06 -04:00
devin doucette
e1f56b47b2 SharedBuffer: Rewrote SharedBuffer to make it easier to use and support immutable buffers
#jira none
#rb Zousar.Shaker, Paul.Chipchase
#rnx

[CL 14581997 by devin doucette in ue5-main branch]
2020-10-26 17:32:41 -04:00
Josh Adams
9095055d88 - Fixed up some known config file issues (no longer need to manually manage known config names in UObject::GetConfigName)
[CL 14573786 by Josh Adams in ue5-main branch]
2020-10-26 09:29:34 -04:00
Martin Ridgers
889b2d647c Implementation of Trace's important events. Some events are only traced once. CPU scope names or log format strings for example. Those trace-once events get lost if a user then connects to trace late (or reconnects a second time). To combat that important events are traced to a separate stream internally so that they can be identified, cached off to one side, and resent when a connection is first established.
#rb johan.berg
#rnx

[CL 14572080 by Martin Ridgers in ue5-main branch]
2020-10-26 03:29:23 -04:00
Zousar Shaker
2ccd540c86 Avoid warning emitted from IncludeTool by keeping FObjectPtr a 'using' in all configurations.
#rb devin.doucette

[CL 14556317 by Zousar Shaker in ue5-main branch]
2020-10-23 11:12:09 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -04:00
Uriel Doyon
86b86e6713 Fixed texture LODGroup settings not being correctly setup at engine initialization.
Enabled back checks on power of 2 textures when generating mips.
#rb josh.adams
#jyi rolando.caloca
#jira UE-101452

[CL 14550682 by Uriel Doyon in ue5-main branch]
2020-10-22 18:13:26 -04:00
danny couture
0bc26cdebe Reduce memory usage by allowing meshdescription and rawmesh bulkdata to be cleaned up if possible
Also add protection so meshdescription can be read from multiple threads in editor

 - Loading Reverb's P_World with empty DDC
    - 319GB to 242GB peak private byte
    - 166GB to 80GB permanent memory usage after map load

#rb Richard.Talbot-Watkins, Matt.Peters, Paul.Chipchase

[CL 14544739 by danny couture in ue5-main branch]
2020-10-22 10:35:43 -04:00