Commit Graph

4288 Commits

Author SHA1 Message Date
CarlMagnus Nordin
c73e9ee84f Workaround for VS2022 compiler issue in NotifyUnreachableObjects
#jira UE-160363
#rb pj.kack
#preflight 63034da433729407e885c604

[CL 21481184 by CarlMagnus Nordin in ue5-main branch]
2022-08-22 05:56:04 -04:00
Devin Doucette
1225bdd006 CoreUObject: Disable the FObjectHandle::Resolve test until its warnings and errors are fixed
#preflight 62ffed75904ba3bd264adf8d
#rb Zousar.Shaker
#rnx
#fyi Chris.Constantinescu

[CL 21464067 by Devin Doucette in ue5-main branch]
2022-08-19 16:12:42 -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
PJ Kack
124f299892 AsyncLoading2: Fix potential race between OnLeakedPackageRename on GT and RemoveUnreachableObjects on ALT (relates to 21353595 and 21426054)
#jira none
#rb carlmagnus.nordin
#rnx
#preflight 62ff3384200ff87e07e6b97c

[CL 21454575 by PJ Kack in ue5-main branch]
2022-08-19 03:09:20 -04:00
Francis Hurteau
1a2903cf0f Remove automatically included exclude object flags from StaticFindObjectFastInternal calls
#rb Jamie.Dale
#jira none
#preflight 62fe7ed0d85afae4d43b32e2

[CL 21446634 by Francis Hurteau in ue5-main branch]
2022-08-18 14:32:18 -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
robert millar
787b65bb74 Add extra explanation of deduplicated garbage refs to summary.
#rb none

#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 21431382 via CL 21431415 via CL 21433573 via CL 21435516 via CL 21435595 via CL 21435638
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v981-21435820)

[CL 21437251 by robert millar in ue5-main branch]
2022-08-17 21:56:44 -04:00
pj kack
5a0d996c87 AsyncLoading2: Prevent double removal of leaked and renamed packages (fix for 21060094 and 21417438).
The double removal would occur in the following scenario...
1. LoadPackageAsync(PackageA)
2. GC & VerifyLoadMapWorldCleanup where PackageA is leaking
3. OnLeakedPackageRename(PackageA)
4. LoadPackageAsync(PackageA)
5. GC & VerifyLoadMapWorldCleanup where old PackageA is destroyed (and new PackageA is destroyed or leaking)

In development step 5 would cause the following assert in FLoadedPackageRef::FPublicExportMap::VerifyAllObjectsRemoved:
Error: Assertion failed: ObjectIndex < 0

In test/shipping step 5 would cause an FLoadedPackageRef assert or nullptr crash in
FGlobalImportStore::RemovePublicExports called from VerifyLoadMapWorldCleanup/OnLeakedPackageRename or CollectGarbageInternal/NotifyUnreachableObjects.

Tested BR replay and StW on PC.

#jira UE-159809, FORT-504960, FORT-494296, FORT-497087
#rb carlmagnus.nordin
[FYI] robert.millar
#rnx

#ROBOMERGE-OWNER: pj.kack
#ROBOMERGE-AUTHOR: pj.kack
#ROBOMERGE-COMMAND: _robomerge[bot4] UE5-MAIN
#ROBOMERGE-SOURCE: CL 21424567 via CL 21424762 via CL 21424834 via CL 21425163 via CL 21425777 via CL 21425803
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v977-21423386)

[CL 21426054 by pj kack in ue5-main branch]
2022-08-17 11:43:27 -04:00
robert manuszewski
b2dcad5641 Trying to catch mismatched object / internal flags when restoring flags in FScopedObjectFlagMarker::RestoreObjectFlags()
#rb SteveRobb
#preflight none

#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 21423280 via CL 21423286 via CL 21423290 via CL 21423294
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v977-21423386)

[CL 21424040 by robert manuszewski in ue5-main branch]
2022-08-17 09:21:25 -04:00
robert millar
a01c5cda1c Don't try and remove objects in renamed packages from the loaded package store if the package is not in there.
#jira UE-159809
#rb none

#ROBOMERGE-AUTHOR: robert.millar
#ROBOMERGE-SOURCE: CL 21417438 via CL 21417445 via CL 21420908 via CL 21420929 via CL 21420961
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v975-21357124)

[CL 21421589 by robert millar in ue5-main branch]
2022-08-17 02:02:26 -04:00
joe pribele
574962f316 [Core] make tests work in Test config
added ifdef to FObjectPathId to enabled for WITH_LOW_LEVEL_TESTS
changed ObjectHandleTest to use test data to avoid having to working with cooked, non-cooked or editor only data

#rb zousar.shaker
#p4v-preflight-copy 21321644
#preflight 62fbef15fd15f5152dcfe38e

[CL 21412488 by joe pribele in ue5-main branch]
2022-08-16 15:53:22 -04:00
Tim Smith
3416938a29 Removing old unreal type registration methods.
#rb self
#preflight 62fbb471fd15f5152dc97e97

[CL 21405704 by Tim Smith in ue5-main branch]
2022-08-16 11:37:51 -04:00
Sebastian Thomeczek
f6c68cc175 Fix inverted check in FNumericProperty::CanHoldValue
Reported through UDN #00459500
#jira none
#review @Steve.Robb
#preflight 62fb877b200ff87e0733c8c9

[CL 21403653 by Sebastian Thomeczek in ue5-main branch]
2022-08-16 08:19:08 -04:00
PJ Kack
3386641b4a AsyncLoading2: Only start the thread when it should be enabled (bug fix for 21402146)
#jira none
#rb carlmagnus.nordin
#rnx
#preflight 62fb4b35cf7afa018b857b6e

[CL 21402262 by PJ Kack in ue5-main branch]
2022-08-16 03:58:44 -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
Zousar Shaker
3e1f5440e8 Ensure that FObjectPathId constructors from strings are permitted in all configurations that build unit tests.
#jira UE-108902
#fyi joe.pribele
#preflight 62fabbb7086f90bbc40639c1

[CL 21395338 by Zousar Shaker in ue5-main branch]
2022-08-15 18:01:10 -04:00
PJ Kack
f92ebfc339 AsyncLoading2: Make sure to call RemoveUnreachableObjects also when running without the Async Loading Thread (follow up fix for 21353595).
Increase log verbosity back to Display for RemoveUnreachableObjects.
Remove unnecessary FGCScopeGuard from the TickAsyncThreadFromGameThread.

#jira UE-160904
#rb carlmagnus.nordin
#rnx
#preflight 62f9fb9de67510be05328c1f

[CL 21384525 by PJ Kack in ue5-main branch]
2022-08-15 04:02:04 -04:00
George Rolfe
0dfcff2aa7 InvalidEnumValues added to ObjectMacros.h - functionality itself present since 5.0
#jira none
#rb none
#preflight none

[CL 21384142 by George Rolfe in ue5-main branch]
2022-08-15 01:29:56 -04:00
jeanfrancois dube
bc31d32319 [Backout] - CL21316192
#jira UE-160873
[FYI] Francis.Hurteau
Original CL Desc
-----------------------------------------------------------------
Bulk reset loaders when saving actor files to avoid going through all imports of all packages once per saved actor.
Saves several seconds when saving lots of actor files.

#rb francis hurteau
#preflight 62f29af13b773d0416317135
#rnx

#ROBOMERGE-AUTHOR: jeanfrancois.dube
#ROBOMERGE-SOURCE: CL 21362405 via CL 21362415 via CL 21362429
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21365910 by jeanfrancois dube in ue5-main branch]
2022-08-12 18:15:39 -04:00
Tim Smith
434454ce07 Fixed issue where LiveCoding could remove properties from a class that contained delegates.
#rb massimo.tristano
#jira UE-160131
#preflight 62f695baad3bd8ad64849317

[CL 21359313 by Tim Smith in ue5-main branch]
2022-08-12 14:15:18 -04:00
Matt Peters
67556ef773 AssetDataTagMap: Fix FMapHandle::FindValue to perform a case-insensitive find when the the input FName is numberless. Change the runtime type for Numberless names to be FDisplayNameEntryId, which has a faster lookup of the comparision index than an FNameEntryId storing the display index.
#rb Johan.Torp
#rnx
#preflight 62f652761e61d1ba0e813167

[CL 21354415 by Matt Peters in ue5-main branch]
2022-08-12 09:40:48 -04:00
PJ Kack
c6fb76e28b AsyncLoading2: Move GC-related importstore logic from GT callback to ALT resume phase.
Make import store more reliable by not relying on Object->HasAnyFlags(RF_WasLoaded | RF_Public) filtering (We can take the hit of checking all unreachable objects on the ALT)
The logic can be forced to run on the GT again with s.RemoveUnreachableObjectsOnGT=1, which in debug and development builds enables extra verifications.

Return actual number of destroyed objects from FAsyncPurge::GetObjectsDestroyedSinceLastMarkPhase to make these logs correct:
LogGarbage: 2.118 ms for incrementally purging unreachable objects (FinishDestroyed: 16176, Destroyed: 1571 / 16176)
LogGarbage: 2.303 ms for incrementally purging unreachable objects (FinishDestroyed: 16176, Destroyed: 1971 / 16176)

#jira UE-159941
#rb carlmagnus.nordin
#rnx
#preflight 62f4f8a7ad3bd8ad64107073

[CL 21353595 by PJ Kack in ue5-main branch]
2022-08-12 08:27:23 -04:00
jamie dale
16fc6d378a Added missing includes
#jira
#preflight skip
#rb none
#rnx

#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 21342753 via CL 21350274 via CL 21350423 via CL 21350451
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21350609 by jamie dale in ue5-main branch]
2022-08-11 23:22:29 -04:00