Commit Graph

243 Commits

Author SHA1 Message Date
marc audy
6553e6cd0a Remove as much C++ deprecation as possible up to 4.17 (along with a few scattered removals from beyond)
#preflight 61eefc77ba69a4fdb220bf23

#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 18712765 in //UE5/Release-5.0/... via CL 18712784 via CL 18713147
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18713191 by marc audy in ue5-main branch]
2022-01-24 15:07:48 -05:00
vincent gauthier
8b51660453 Localization: Resolving conflicting Ids in LOC macros
#jira UE-136397
#rb none
#preflight 61eebe505e0414e6ec1e5a19

#ROBOMERGE-AUTHOR: vincent.gauthier
#ROBOMERGE-SOURCE: CL 18708506 in //UE5/Release-5.0/... via CL 18708530 via CL 18708683
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18708694 by vincent gauthier in ue5-main branch]
2022-01-24 10:13:12 -05:00
matt peters
c728a62762 #jira UE-139613
Add diagnostic logs when FilenameToLongPackageName fails. Update InternalFilenameToLongPackageName to also try comparing absolute paths.
#rb Josh.Adams
#rnx
#preflight 61e9b2ae963d324152f73877

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18679510 in //UE5/Release-5.0/... via CL 18679543 via CL 18679580
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v902-18672795)

[CL 18680756 by matt peters in ue5-main branch]
2022-01-20 16:00:35 -05:00
sebastian thomeczek
a0634569e4 Add PackageName.DumpMointPoints, PackageName.RegisterMountPoint and PackageName.UnregisterMountPoint console commands
#rb Matt.Peters
#jira none
#preflight 61e85709e543b8254570de6b

#ROBOMERGE-AUTHOR: sebastian.thomeczek
#ROBOMERGE-SOURCE: CL 18661225 in //UE5/Release-5.0/... via CL 18661265 via CL 18661293
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18661327 by sebastian thomeczek in ue5-main branch]
2022-01-19 13:38:57 -05:00
francis hurteau
d262daac13 Added support to Loose File Package Writer to write multiple package output per input
Added similar support to the package store manifest
Zen Store support will be added separately
Added some extra data to linker object resources to be used by the iostore package optimizer to properly support optional package chunks.

Multiple cooking outputs is used to support "optional objects" which are editor data package exports that would be put in separate iostore containers than the normal cooked game content.

#jira UE-129801
#rb Matt.Peters, CarlMagnus.Nordin
#preflight 61e5d3bb873f2ea48f48166c

#ROBOMERGE-AUTHOR: francis.hurteau
#ROBOMERGE-SOURCE: CL 18639742 in //UE5/Release-5.0/... via CL 18639751 via CL 18639758
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v900-18638592)

[CL 18639762 by francis hurteau in ue5-main branch]
2022-01-18 09:56:23 -05:00
matt peters
fb786c7e8b #jira UE-138902
Split FPackageName's initialization into two events so that FPackageName::TryConvertFilenameToLongPackageName can be called with limited functionality before pluginmanager and coreobject have been initialized.
#preflight 61e58568006b17a6865ac944
#rb Graeme.Thornton
#rnx

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18634271 in //UE5/Release-5.0/... via CL 18634294 via CL 18634301
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18637425 by matt peters in ue5-main branch]
2022-01-18 04:35:15 -05:00
nuno leiria
549ce36cdf Misc changes required to build consoles as modules
#preflight 61df20d0484d866ec0192dc6
#rb david.harvey

#ROBOMERGE-AUTHOR: nuno.leiria
#ROBOMERGE-SOURCE: CL 18616274 in //UE5/Release-5.0/... via CL 18616284 via CL 18616293
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18616300 by nuno leiria in ue5-main branch]
2022-01-14 07:01:20 -05:00
rex hill
9e3db015d6 Fix MountPointExists to include mount points that are not plugins such as Game and Engine
#rb dave.belanger, graeme.thornton, matt.peters
#preflight 61df07e5484d866ec0170bd1

#ROBOMERGE-AUTHOR: rex.hill
#ROBOMERGE-SOURCE: CL 18587214 via CL 18588261 via CL 18588271 via CL 18588276 via CL 18588584 via CL 18588597 via CL 18588607
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Test -> Main) (v899-18417669)

[CL 18588618 by rex hill in ue5-main branch]
2022-01-12 15:16:46 -05:00
richard malo
481f65fe16 New Actor Folders objects.
- When enabled, folders are actual objects : modifying a folder won't affect actors (more compliant with OFPA).
- Enabled by default for World Partition and Level Instances.
- Can be enabled on regular levels (experimental feature 'Use Actor Folder Objects').
- If Level uses OFPA, ActorFolders will also be saved in their own package (but will use __ExternalObjects__ root folder).
- In a future refactoring, external actors will also be moved in the same root folder.
- Generalized saving object in an external package (different from its outer package)
- World outliner supports old folders and new actor folder objects : Levels using the actor folder objects will show a root Level node (like Level Instances).
#rb patrick.enfedaque, jeanfrancois.dube
#preflight 61d84b356511bc498e5cb858

#ROBOMERGE-AUTHOR: richard.malo
#ROBOMERGE-SOURCE: CL 18543443 in //UE5/Release-5.0/... via CL 18543482
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18543525 by richard malo in ue5-release-engine-test branch]
2022-01-07 10:01:19 -05:00
devin doucette
a4c3b2cf75 Replaced use of TStringView::SizeType with int32 or equivalent casts
SizeType will be deprecated in a subsequent change.

#rb Zousar.Shaker
#rnx
#preflight 61b8dde95d1b7767a13a5a70

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 18456907 in //UE5/Release-5.0/... via CL 18456915
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v898-18417669)

[CL 18456926 by devin doucette in ue5-release-engine-test branch]
2021-12-14 14:07:35 -05:00
jeanfrancois dube
c9f007348b Fix potential race conditions introduced in optimization from 17401227.
#rb sebastien.lussier
#preflight none

#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 17475619 via CL 17926111 via CL 18361953 via CL 18362033
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18362101 by jeanfrancois dube in ue5-release-engine-test branch]
2021-12-02 18:56:51 -05:00
matt peters
76722cbb5c #jira UE-133730
Add PackageAccessTrackingOps::NAME_CookerBuildObject to catch references to other packages that are made from an object's BeginCacheForCookedPlatformData call.
#rb Zousar.Shaker
#rnx

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 18279388 in //UE5/Release-5.0/... via CL 18279398
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18279406 by matt peters in ue5-release-engine-test branch]
2021-11-23 21:16:10 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
matt peters
86442fc293 Optimize FPackageLocalizationCache::ConditionalUpdateCache
1) Batch up calls to AssetRegistry->GetAssetsByPath instead of calling it once per plugin, as the function has a high overhead.
2) Remove trace scope from UE:AssetRegistry FFiltering::ShouldSkipAsset as the function is called very frequently (large projects can have a million assets).

#rb Francis.Hurteau, Jamie.Dale
#rnx
#jira None, slack thread

#ushell-cherrypick of 17591138 by Matt.Peters

#ROBOMERGE-AUTHOR: matt.peters
#ROBOMERGE-SOURCE: CL 17628939 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17628957 by matt peters in ue5-release-engine-test branch]
2021-09-27 07:27:26 -04:00
michael noland
0cda7da7d4 Partial pass of fixing type truncation warnings in CoreUObject
#jira UE-127233
#rb Devin.Doucett

#ROBOMERGE-OWNER: michael.noland
#ROBOMERGE-AUTHOR: michael.noland
#ROBOMERGE-SOURCE: CL 17618902 in //UE5/Release-5.0/... via CL 17618928
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v871-17566257)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17618930 by michael noland in ue5-release-engine-test branch]
2021-09-24 00:31:55 -04:00
paul chipchase
ecdec9bf35 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
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v870-17433530)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17550583 by paul chipchase in ue5-release-engine-test branch]
2021-09-17 07:04:55 -04:00
carlmagnus nordin
ba9b35c38c Fixed another crash when trying to convert empty or invalid package paths to filenames
#rb pj.kack
#rnx
#jira UE-126031

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 17490460 via CL 17490467 via CL 17490469 via CL 17490474
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v870-17433530)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17490477 by carlmagnus nordin in ue5-release-engine-test branch]
2021-09-13 07:01:29 -04:00
carlmagnus nordin
322068f3c8 Implemented FromLocalPath on slimmed down FPackagePath
#jira UE-126031
#rnx
#rb pj.kack

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 17455754 via CL 17455882 via CL 17455888 via CL 17455889
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v870-17433530)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17455907 by carlmagnus nordin in ue5-release-engine-test branch]
2021-09-08 05:52:40 -04:00
carlmagnus nordin
a846bdb5ed Fixed crash when trying to convert empty or invalid package paths to filenames
#rb pj.kack
#rnx

#ROBOMERGE-AUTHOR: carlmagnus.nordin
#ROBOMERGE-SOURCE: CL 17441512 via CL 17441520 via CL 17441525 via CL 17441528
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v870-17433530)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17441531 by carlmagnus nordin in ue5-release-engine-test branch]
2021-09-07 01:31:48 -04:00
jeanfrancois dube
b5834e597c Cache all mounted roots in FLongPackagePathsSingleton instead of generating a string array on each calls from various functions in FPackageName.
Greatly reduce temporary memory allocations from callers (worst offender during editor loads was FPackageName::IsValidLongPackageName).

#rb matt.peters
#preflight none

#ROBOMERGE-SOURCE: CL 17401227 via CL 17402199
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17402247 by jeanfrancois dube in ue5-release-engine-test branch]
2021-09-02 09:09:58 -04:00
matt peters
a5b45baaf7 Fix whitespace merge error.
#rnx
#rb None, trivial

#ROBOMERGE-SOURCE: CL 17376646 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17376685 by matt peters in ue5-release-engine-test branch]
2021-08-31 16:17:24 -04:00
luc eygasier
10d4800ede Rework Source Control Changelist Window?s Asset beautification:
* Adds Source Control Asset Data cache. Preventing Source Control Changelist Window to rebuild AssetData from scratch when UI refresh takes place
* Modifies Source Control beautification to async process, preventing crowded changelists to block the workflow. The filenames are now beautified when available.
* Parallelize AssetData information retrieval from SourceControl
* Updates message displayed when refreshing window's items

#rb Sebastien.Lussier, JeanFrancois.Dube
#jira UETOOL-3522

#changelist validated

#ROBOMERGE-SOURCE: CL 17375288 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17375337 by luc eygasier in ue5-release-engine-test branch]
2021-08-31 15:14:29 -04:00
carlmagnus nordin
32e4a5213e Implemented a stripped down version of FPackagePath for use outside of the editor in order to save memory
#rnx
#jira UE-120698

#ROBOMERGE-SOURCE: CL 17300999 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17301011 by carlmagnus nordin in ue5-release-engine-test branch]
2021-08-25 08:02:24 -04:00