Commit Graph

9075 Commits

Author SHA1 Message Date
jason walter
15cca139de Use MakeDialogDelayed vs MakeDialog in some of the Save / Load paths. This will prevent the UI from disrupting workflows when in Multi-user mode.
#jira UE-124537
#rb jamie.dale

#ushell-cherrypick of 17407178 by jason.walter

[CL 17573843 by jason walter in ue5-main branch]
2021-09-20 14:51:34 -04:00
Devin Doucette
3e06559dcf IoDispatcher: Always initialize IoDispatcher
Only return true from FIoDispatcher::IsInitialized() when the script objects chunk exists to keep its behavior consistent. Later, this function will be deprecated in favor of a function on IAsyncPackageLoader.

#rb Zousar.Shaker
#fyi CarlMagnus.Nordin
#preflight 614541e1bf494a0001bd76bc

[CL 17570905 by Devin Doucette in ue5-main branch]
2021-09-20 10:59:45 -04:00
michael balzer
4f9367249f GeometryCore: Improved serialization for dynamic mesh data
This CL adds improved serialization for FDynamicMesh3 and its data structures:
- FDynamicMesh3, TDynamicVector, FRefCountVector, FSmallListSet, TDynamicMeshOverlay, ...
- Versioning using the UE5Main stream version
- Discarding redundant data
- Oodle compression
- Serialization of vertex skin weights
- Additional unit tests and benchmark

#jira UETOOL-3821
#preflight 6145b802c2c19000017e2f6f, 6145b81ea7246e00017b1a43

[CL 17563009 by michael balzer in ue5-main branch]
2021-09-18 06:27:35 -04:00
Max Chen
bd22c96c90 Time: Clamp to int extents before casting. Otherwise, if it's out of range, the results are undefined.
#jira UE-126883
#rb matt.hoffman
#preflight 6144d94bbb11800001eaac3c

[CL 17557648 by Max Chen in ue5-main branch]
2021-09-17 16:12:03 -04:00
Matt Peters
83e3dd1f3b CookedPackageWriter iterative builds - change to use FAssetRegistryState as the list of previous files. Load the AssetRegistry from the AssetRegistry.bin file even when using ZenStore for the package storage.
#rb Per.Larsson
#rnx

[CL 17551332 by Matt Peters in ue5-main branch]
2021-09-17 09:32:26 -04:00
paul chipchase
21c2777e84 Add an UE5 specific version EUnrealEngineObjectUE5Version to be used for global changes instead of EUnrealEngineObjectUEVersion. By splitting and storing both version numbers we allow for hypothetical future UE4 changes that will not conflict when merged to UE5.
#rb CarlMagnus.Nordin
#rnx
#tests Ran overnight preflights on several platforms, opened/cooked/staged/ran the oldest version of InfiltratorDemo that can be downloaded (4.11)

### ObjectVersion
- Add a new version enum EUnrealEngineObjectUE5Version.
-- This version number starts at 1000 which leaves more than enough for for EUnrealEngineObjectUEVersion to be expanded
- Even though very few changes (if any at all) to EUnrealEngineObjectUE4Version are expected there is a static assert to make sure that EUnrealEngineObjectUEVersion::AUTOMATIC_VERSION never overtakes EUnrealEngineObjectUE5Version::INITIAL_VERSION.
- Add a struct FPackageFileVersion that wraps around the version numbers and is used to store them instead of raw int32 values which was done before. This should make it easier to add new version numbers in the future if we desire (although this will cause problems in places that serialize the struct directly)

### FPackageFileSummary
- Adding a new entry to CurrentLegacyFileVersion at value -8 which shows the UE5 version being added. This lets us make the changes without needing to submit anything to UE4 Main.
- When loading a package that does not have a UE5 version, it will remain at 0.
- Added ::IsFileVersionTooOld and ::IsFileVersionTooNew to replace hardcoded tests in the code base for version validity. This will make it easier to make changes in the future.
- A few months ago most of the accessors of the version number were deprecated in favour of a version that did not contain the Engine number (ie UE4Ver -> UEVer in Archive) but to work with these changes the renamed methods now will return or accept the version as FPackageFileVersion rather than int32.  The old UE4 methods will remain deprecated and direct licensees to use the new methods.

### Archive
- Now stores the version as a FPackageFileVersion rather than int32

### LinkerLoad
- Reports the larger version number if we detect a higher version number than we support. Note that this could cause an issue if the UE4 version is ever raised but helps keep the code simple.

### AssetData
- Need to add a new version here to manage existing data that only has the UE4 version

### EditorDomain
- We do not need to version the format, we can just invalidate existing editor domain entries via EditorDomainVersion

### EditorServer
- When reporting that a package is too old we report the UE4 version as that is the only version that can be older than VER_UE4_OLDEST_LOADABLE_PACKAGE
- When reporting that a package is too new it can be either the UE4 or the UE5 version so we print them together "UE4Ver|UE5Ver"

### ContentCommandlets
- The min and max resave versions have been kept as a single value, you will not be able to resave against different UE4 and UE5 versions at the same time. It doesn't seem like a useful feature and would greatly increase the complexity of the code.
- We will also only report the file version as a single value.

### ManifestUObject
- This class was setting an older obsolete version on purpose to try and maintain compatibility with older clients so we need to provide a way to create an older UE4 only version that will leave the UE5 version as unset.

### NetworkPlatformFile
- I was unable to test the code path in FNetworkPlatformFile::ProcessServerCachedFilesResponse as I am unsure how to run the game in a mode that will actually use it.
- When reading an older "CookedVersion.txt" that was saved with a single version, the reads will fail and this will count as a version change in the code so that all of the existing files will be deleted. The existing code would not give the user a log message when this happens and given the very small time window where this might happen caused by this change I have opted to leave this alone and not add any additional logging.
- If we do detect a version mismatch we will still only log the version number as a single version.

### CookOnTheFlyServer
- We now add each version number to the IniVersionMap rather than merge the version and license version as a key/value pair. This allows us to a) use both the UE4 and UE5 version numbers b) we now log a warning that the version values don't match when it is changed, previously since it was a key value we would log a warning about an additional setting instead.
-- I also added "vs" to the log message when values are mismatched to make the space between the two values being printed clearer.

#ROBOMERGE-OWNER: paul.chipchase
#ROBOMERGE-AUTHOR: paul.chipchase
#ROBOMERGE-SOURCE: CL 17549459 via CL 17550236 via CL 17550238 via CL 17550582 via CL 17550583
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v870-17433530)

[CL 17550586 by paul chipchase in ue5-main branch]
2021-09-17 07:05:39 -04:00
Arne Schober
fa86019a0b U5 - remove unnecessary continue
[CL 17545529 by Arne Schober in ue5-main branch]
2021-09-16 18:40:54 -04:00
Arne Schober
d0a473449a U5 - adding extra verfication constraints.
[CL 17543261 by Arne Schober in ue5-main branch]
2021-09-16 15:25:29 -04:00
Arne Schober
74b2b5a534 U5 - fix cases of early drowsing state.
[CL 17542302 by Arne Schober in ue5-main branch]
2021-09-16 14:26:44 -04:00
carlmagnus nordin
125f2bdc86 Compile fixes for building UnrealPak in shipping config
#rnx
#rb pj.kack

#ROBOMERGE-OWNER: carlmagnus.nordin
#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 17536937 via CL 17536972 via CL 17536975 via CL 17536976 via CL 17537001
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v870-17433530)

[CL 17537005 by carlmagnus nordin in ue5-main branch]
2021-09-16 07:48:41 -04:00
David Harvey
299c6b6464 use Unordered comparison operator for AVX VectorCompareNE... this matches the normal C behavior.
#jira UE-125150
#rnx
#rb Andy.Davidson, Zak.Middleton

[CL 17535341 by David Harvey in ue5-main branch]
2021-09-16 04:45:17 -04:00
Arne Schober
5901a886b2 U5 - try to have workers go into drowsing early so that when wakup occurs we don't have to hard trigger sleeping workers instead.
[CL 17534653 by Arne Schober in ue5-main branch]
2021-09-16 02:41:09 -04:00
geoff evans
4ffe06f1be Update AutomationController Log settings
Introduce bElevateLogWarningsToErrors as a good name for existing functionality. Note it's assuming the name as it's known by its customer code. This change lines up the settings variable to its colloquial name around the codebase.

Deprecate bTreatLogWarningsAsTestErrors as it was misleading because it doesn't really shuffle log warnings into the test errors bucket as much as it just reclassifies the log verbosity from log warning to log error.

Remove bTreatLogErrorsAsTestErrors as it wasn't functional outside of EditorIterationTest's custom base class, and it's tempting to use incorrectly in place of bSuppressLogErrors

#rnx
#jira none
#rb andrew.grant
#preflight 6142442c4778fa000135b987

[CL 17526549 by geoff evans in ue5-main branch]
2021-09-15 16:50:42 -04:00
Andriy Tylychko
617dfe729f AudioThread task priority set to BackgroundNormal (was Normal by mistake, originally AudioThread was below normal priority before it was replaced by a pipe), added a cvar to control it in runtime
#robomerge[bot1] EMT

[CL 17524630 by Andriy Tylychko in ue5-main branch]
2021-09-15 15:03:34 -04:00
carlmagnus nordin
341637ba37 IoStore: Changes to allow IoStore to run as part of UnrealPak instead of as a cmdlet
#rb per.larsson
#rnx

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 17517167 via CL 17517189 via CL 17517191 via CL 17519703 via CL 17519714
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v870-17433530)

[CL 17519729 by carlmagnus nordin in ue5-main branch]
2021-09-15 10:40:05 -04:00
PJ Kack
0a713412ff IoDispatcher: Fix non-unity compile error caused by cl 17516499
#rb none
#rnx

[CL 17516887 by PJ Kack in ue5-main branch]
2021-09-15 04:29:24 -04:00
Martin Ridgers
395151933b Moved some platform defines to their corresponding Core.Build.cs
#fyi martins.mozeiko
#rnx
#preflight 6141a3cf9bba9a0001818033

[CL 17516847 by Martin Ridgers in ue5-main branch]
2021-09-15 04:22:41 -04:00
PJ Kack
8f856144ca IoDispatcher: Extract a IPlatformFileIoStore interface for the file backend platform implementations.
Move private core header files to internal to allow engine platform implementations in modules outside of core.
Add -forcegenericio command line option to disable platform specific implementations and fall back to the generic platform implementation that works on all platforms.

#rb carlmagnus.nordin
#rnx
#preflight 6140a7aaeb6e63000189fdf4

[CL 17516499 by PJ Kack in ue5-main branch]
2021-09-15 02:52:38 -04:00
Matt Peters
a06ff90588 CookOnTheFly - handle already-cooked packages from iterative builds.
#rb Per.Larsson
#rnx

[CL 17508341 by Matt Peters in ue5-main branch]
2021-09-14 15:14:31 -04:00
Devin Doucette
fc95d3996d CompositeBuffer: Workaround for a bug in MSVC older than 14.29.30133
This is confirmed to build with MSVC 14.24.28314, 14.28.29914, 14.29.30133.

#rb Zousar.Shaker
#rnx
#preflight 614045f93aa82d00013c2fc1

[CL 17504046 by Devin Doucette in ue5-main branch]
2021-09-14 09:33:10 -04:00
Devin Doucette
3ce878a8f1 CompositeBuffer: Renamed Flatten() to ToShared()
#rb none
#rnx
#fyi Zousar.Shaker
#preflight 613f872b3bbb48000114081d

[CL 17495384 by Devin Doucette in ue5-main branch]
2021-09-13 15:15:35 -04:00
Devin Doucette
1ee3e03b26 CompactBinary: Fixed attachment constructors missing calls to MakeOwned, and attachment loading that was too permissive
#rb none
#rnx
#preflight 613a7d7780b8e70001767bcd

[CL 17478507 by Devin Doucette in ue5-main branch]
2021-09-09 19:39:38 -04:00
Brandon Schaefer
95d9950a8d Move Warning to Verbose for possible leaked process. Its been around for a long time and while could still be an issue, not enough to spam the logs
#jira none
#rb Michael.Sartain

[CL 17476778 by Brandon Schaefer in ue5-main branch]
2021-09-09 17:44:20 -04:00
Devin Doucette
5fe761dbbd CompositeBuffer: Disabled the constructor for invalid parameter types
#rb Zousar.Shaker
#rnx
#preflight 613a5d06bf5a71000174e31e

[CL 17476031 by Devin Doucette in ue5-main branch]
2021-09-09 16:25:33 -04:00
Thomas Sarkanen
a8c165387c Anim node references
Added the abiity to tag and retrieve any anim graph node (similar to how we could reference linked anim graph nodes previously).
Ported linked anim graph nodes to use the new system
Added the ability to reference any anim graph node by tag (via a new custom node, spawnable from the context menu, with the appearance of an actor reference in a level blueprint)
Added tag display and editing in the bottom-right of anim graph nodes
Added new override point to SGraphNodeK2Var to allow for title widget parameters to be overriden by child classes

#jira UE-126286 - Anim node functions: Add anim node references
#rb Jurre.deBaare
#preflight 613a1e0cf9a522000143c253

[CL 17472894 by Thomas Sarkanen in ue5-main branch]
2021-09-09 11:41:13 -04:00