Commit Graph

387 Commits

Author SHA1 Message Date
henrik karlsson
4a36cfe8ff Moved operator== to be hidden friend instead of put directly in global namespace
Moved GetTypeHash function to be hidden friend instead of put directly in global namespace.

Note that the function/operator needs to be fully inlined in the type or placed in the cpp. If the function is added as friend but then implemented outside the type then hidden friend optimization won't work.

This should improve compile time somewhat according to msvc devs.

#rb Steve.Robb
#preflight 6360b7052b5338aceb26471b

[CL 22889837 by henrik karlsson in ue5-main branch]
2022-11-01 15:50:27 -04:00
henrik karlsson
cd1466475b Fixed up const/constexpr variables in header files to be "inline"
This is required for c++ modules/header units in order to decide if constexpr/const value should be available to outside module

#preflight 635c0b5c1803be35c767e0ea
#rb none

[CL 22835882 by henrik karlsson in ue5-main branch]
2022-10-28 15:38:42 -04:00
devin doucette
07741e3ca5 DerivedData: Added FDerivedData::IsCooked
#preflight 635a96265d49a96f7b458f35
#rb Zousar.Shaker
#rnx

[CL 22811235 by devin doucette in ue5-main branch]
2022-10-27 11:47:16 -04:00
pj kack
7f6ccdb4ae AsyncLoading2: Merge LoadedPackageStore and GlobalImportStore and make it more tolerant to renaming of loaded objects.
Handle loaded objects being moved to another (transient) package by cleaning up all public export state when removing a loaded package.
Handle reloading of a package with internally renamed objects by allowing StoreGlobalObject to replace the previous public export.
Note: Renaming of loaded packages is still only supported via the delegate GetOnLeakedPackageRenameDelegate.
Compile all debug verification in all builds and make it possible to toggle with s.VerifyUnreachableObject=0/1 and s.VerifyObjectLoadFlags=0/1, while enabling it by default it debug and development builds.

#jira UE-167186, FORT-524537
#rb carlmagnus.nordin
[FYI] robert.millar
#preflight 63526bdc9e14ee3c798aa429, 63527f560313c24974216206
#rnx

[CL 22710443 by pj kack in ue5-main branch]
2022-10-22 07:09:46 -04:00
Per Larsson
109822e0b0 Bulk Data - I/O dispatcher only streaming
- This change removes the explicit usage of the package resource manager when loading bulk data from loose files or the Editor Domain. A new
I/O dispatcher backend reads data from the package resource manager with a new I/O chunk type constructed from a package name/package segment. When
serializing bulk data the I/O chunk type is set to the correct chunk type depending on whether the package is cooked or not.

#rb CarlMagnus.Nordin, Paul.Chipchase
#jira none
#preflight 633bdbc66b10157eac8e1807

[CL 22523877 by Per Larsson in ue5-main branch]
2022-10-14 04:26:10 -04:00
Devin Doucette
07aec936b4 DerivedData: Fixed inadvertent size increase of FDerivedData
Flags have moved into FCookedData to avoid padding, and there is now a static_assert on the size.

A new constructor allows creating references from the private FCookedData, and FLinkerSave now returns FDerivedData instead of FCookedData.

#preflight 633ef62f2a0a2c1ead2f4061
#rb Zousar.Shaker
#rnx

[CL 22377528 by Devin Doucette in ue5-main branch]
2022-10-06 12:22:07 -04:00
Matt Peters
f7789be6bf BulkData.GetBulkDataVersions: Add GetBulkDataVersions to FBulkData so that SkeletalMesh and Cloth can use it. In FEditorBulkData, update the implementation to correctly read the versions from the WorkspaceDomain file for BulkDatas that are in EditorDomain packages and reference bytes out of their WorkspaceDomain package.
#rb Paul.Chipchase
#rnx
#preflight 633c5869680898488488a39f

[CL 22332780 by Matt Peters in ue5-main branch]
2022-10-04 12:42:03 -04:00
andrew davidson
970f8f6a18 Non-Engine module public header truncation fixes to reduce noise when compiling with truncation warnings
#jira UE-160823
#rb dave.jones2, zak.middleton
#preflight 6336a3ecc37844870af8b119

[CL 22271698 by andrew davidson in ue5-main branch]
2022-09-30 11:36:06 -04:00
per larsson
c25048d9df Bulk Data - deprecate GetPackagePath/PackageSegment
#rb Paul.Chipchase
#jira UE-165473
#preflight 63359b2e3041fbb5665410c3

[CL 22271509 by per larsson in ue5-main branch]
2022-09-30 11:25:58 -04:00
Devin Doucette
e80df527fd DerivedData: Extracted private FCookedData from FDerivedData
The new FCookedData has been used to clean up the FLinkerSave API and the implementation of FDerivedData.

#preflight 63344bde0530d7c4b9c115d0
#rb Zousar.Shaker
#rnx

[CL 22221553 by Devin Doucette in ue5-main branch]
2022-09-28 10:07:08 -04:00
Matt Peters
97d33caf50 MeshDescription: In addition to applying the package's CustomVersions when deserializing MeshDescription out of BulkData, also apply the UEVersion and LicenseeUEVersion.
#jira UE-160855
#rb Richard.TalbotWatkin
#rnx
#preflight 63289253ea1c94f4c5e2fd67

[CL 22076022 by Matt Peters in ue5-main branch]
2022-09-19 13:01:00 -04:00
joe pribele
73e907afca [CoreUObject] changed DuplicateDataReader/Writer to handle TObjectPtr
#rb zousar.shaker
#preflight 6320f8078c478acecf7abfaa

[CL 21998836 by joe pribele in ue5-main branch]
2022-09-13 22:44:01 -04:00
Devin Doucette
0ce0756966 DerivedData: Added a way to request compressed data from derived data references
- FDerivedDataIoBatch::Compress requests the entire compressed value.
- FDerivedDataIoResponse::GetCompressedData gets the compressed buffer from the response when available.
- FDerivedDataIoResponse::GetCacheValueId has been added to get the FValueId when available.
- FDerivedDataIoResponse::GetCacheKey has been fixed to return a non-null cache key when appropriate.
- Asserts about FDerivedData now log the derived data reference too.

#preflight 631a5f6fa60c539c98ab5fa9
#rb Zousar.Shaker

[CL 21920523 by Devin Doucette in ue5-main branch]
2022-09-09 10:36:44 -04:00
Andriy Tylychko
3fe8b0bcb6 fixed non-unity compilation by including the correct header
https://horde.devtools.epicgames.com/job/6318b22ba31879aea8d85c9b?step=8e3f&issue=209198
#preflight 6318d0b8d135b61bc5bc12aa

[CL 21855577 by Andriy Tylychko in ue5-main branch]
2022-09-07 13:26:59 -04:00
carlmagnus nordin
e582c065d7 ZenLoader: Initial support for loading packages in the editor
#rb pj.kack
#preflight 6310b0d1ea685939704bded6, 6311a3fa7778595cd69d7f6b
#jira UE-162812

[CL 21790081 by carlmagnus nordin in ue5-main branch]
2022-09-05 04:36:25 -04:00
Per Larsson
2f11775439 Bulk Data - fix bug when merging I/O batch read request(s)
- This change fixes an issue when batching bulk data I/O requests where the bulk data is layed out contiguous in the chunk/file. Internally
the max read size was previously capped to the size of the bulk data but when merging read requests we read past the first bulk data
instance, i.e. from first to last. This is safe as long as the range is stored contiguously in the same chunk/file.

#rb Paul.Chipchase
#jira UE-162910
#preflight 6314d66ba20b67673bca3713

[CL 21788475 by Per Larsson in ue5-main branch]
2022-09-05 02:56:20 -04:00
Per Larsson
60dc823b46 Bulk Data - inline reloading ensures
#rb Paul.Chipchase
#jira UE-162155
#preflight 630dfb9ea416f6df25d0c82c

[CL 21699599 by Per Larsson in ue5-main branch]
2022-08-30 09:38:27 -04:00
Per Larsson
6181aa421f Bulk Data - refactored batch API to better support Nanite streaming
#rb Paul.Chipchase
#jira none
#preflight 630c97370345de4ccf7f202b
#rnx

[CL 21675673 by Per Larsson in ue5-main branch]
2022-08-29 08:53:10 -04:00
Per Larsson
6fce9705f5 Bulk Data - skip stream to instances that is already loaded
#rb Paul.Chipchase
#rnx
#jira none
#preflight 62ff8c6d3f75602b2f589a92

[CL 21456502 by Per Larsson in ue5-main branch]
2022-08-19 09:38:02 -04:00
Per Larsson
550f817932 Fix const correctness when constructing bulk data I/O request
#rb trivial
#rnx
#preflight 62ff335b3c4417dcec4432b1

[CL 21454603 by Per Larsson in ue5-main branch]
2022-08-19 03:18:11 -04:00
Per Larsson
459fb44b2f Bulk Data - deprecate StartAsyncLoading/CreateStreamingRequestForRange
#rb CarlMagnus.Nordin, Paul.Chipchase
#jira none
#preflight 62fdf44787319bacfb44bdcb

- deprecated and replaced the usage of StartAsyncLoading and CreateStreamingRequestForRange with a new batch API for requesting bulk data. The
new API fits better with the I/O dispatcher API and does not assume that the bulk data resides in the same I/O chunk. The new API also
removes state handling away from the bulk data instances.

[CL 21439218 by Per Larsson in ue5-main branch]
2022-08-18 04:46:58 -04:00
PJ Kack
fb99d794b7 AsyncLoading2: Improve the initial load logic from cl 20643384.
Replace FinalizeInitialLoad with CompleteRegistrationEvent and use the same code path with/without the async loading thread.
Strip the FindAllScriptObjects logic from test and shipping builds.
Optimize initial load NotifyRegistrationEvent handling by passing the finished object instead of looking it up by name.

#jira FORT-492925
#rb carlmagnus.nordin
#rnx
#preflight 62fb3e5b4b04bcb92d500a68

[CL 21402146 by PJ Kack in ue5-main branch]
2022-08-16 03:08:56 -04:00
devin doucette
e71e54db74 Reverted unnecessary additions by IWYU
- Array.h is not needed by CompactBinarySerialization.h because the use of TArray is in a template function.
- SharedBuffer.h is not needed by DerivedData.h because its types are only used as return types or function parameters.
- FString and FCompositeBuffer are both declared in Fwd.h headers and do not need duplicate forward declarations.

#rb none
#rnx

#ROBOMERGE-AUTHOR: devin.doucette
#ROBOMERGE-SOURCE: CL 21391840 via CL 21394622 via CL 21395405
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v975-21357124)

[CL 21398955 by devin doucette in ue5-main branch]
2022-08-15 20:51:42 -04:00
Per Larsson
09ee5cd1e3 Deprecate and remove the usage of FUntypedBulkData
#rb Paul.Chipchase
#jira none
#preflight 62f11262461e862154bcd6f9

[CL 21315341 by Per Larsson in ue5-main branch]
2022-08-10 03:29:33 -04:00
Bryan sefcik
b4a6e947d8 Ran IWYU on Public headers under Engine/Source/Runtime/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira

#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 21181076 by Bryan sefcik in ue5-main branch]
2022-07-20 11:31:36 -04:00