Commit Graph

3715 Commits

Author SHA1 Message Date
carlmagnus nordin
ca0e067d32 ZenLoader: Match suspend/resume behaviour of legacy loader by using a counter instead of a boolean
#preflight 637743c9aa2fe2b05f7d0c69
#rb pj.kack

[CL 23192063 by carlmagnus nordin in ue5-main branch]
2022-11-18 05:56:05 -05:00
nick darnell
ff3e36b82d Make the WarnIfAssetsLoadedInScope respect the enabled state.
[CL 23182578 by nick darnell in ue5-main branch]
2022-11-17 15:29:26 -05:00
carlmagnus nordin
ed9daf6351 ZenLoader in editor:
* Allow sync loading a package that's already on the stack when postloading an object
* Fixed issue with packages that were already being waited for when issuing a sync load from one of their event nodes
* Clear linker imports when detaching a linker so that we don't end up with invalid import object pointers after a GC
* Fixed infinite loading when a predicate based flush is done from within a sync load context
#preflght 6374e425bf76990b71b34f93
#rb pj.kack

[CL 23173356 by carlmagnus nordin in ue5-main branch]
2022-11-17 03:20:54 -05:00
steve robb
21e8d56a94 Improved comments on SerializeBin() and SerializeBinEx() to make it clear that binary serialization of deprecated properties can cause problems.
Made FProperty::ShouldSerializeValue() easier to debug for why a property is skipped.

#rb robert.manuszewski
#jira UE-170259
#preflight 6372e660b663683828915ccd

[CL 23153394 by steve robb in ue5-main branch]
2022-11-16 09:18:24 -05:00
carlmagnus nordin
09aa310af4 ZenLoader:
* Always pass along a thread context to ReleaseBarrier
* Update the active sync load context and associated package as early as possible also for the game thread
#preflight 637359678f4cb2e4dcd5aa8f
#rb pj.kack

[CL 23151915 by carlmagnus nordin in ue5-main branch]
2022-11-16 05:02:26 -05:00
andrew scheidecker
0d7f15c26f Enable the garbage collector to find UObjects that might be referenced by FDynamicallyTypedValueType.
#preflight 636e3faa953c19d4353c4c24
#rb Robert.Manuszewski

[CL 23134311 by andrew scheidecker in ue5-main branch]
2022-11-15 07:40:17 -05:00
joe pribele
85fffe266b removing PRAGMA_DISABLE_OPTIMIZATION
#preflight 6372ce88953c19d4353f8ba7

[CL 23129923 by joe pribele in ue5-main branch]
2022-11-14 18:52:35 -05:00
joe pribele
1d8537f20b changed PRAGMA_DISABLE_OPTIMIZATION to UE_DISABLE_OPTIMIZATION_SHIP
#preflight 6372ba60ee4d25f90ae3d207

[CL 23128414 by joe pribele in ue5-main branch]
2022-11-14 17:31:05 -05:00
carlmagnus nordin
c9999a5684 ZenLoader: Fixed (rare) crash introduced in 23059228, a package can be deleted as soon as the last barrier is released
[REVIEW] [at]pj.kack
#preflight 6372429f0c74adb48b1fcdc3
#localization none
#tests client

[CL 23121801 by carlmagnus nordin in ue5-main branch]
2022-11-14 13:18:21 -05:00
joe pribele
4e92aea636 fix for PrintScriptCallStack crashing when called from the immedieate window
changed `FWindowsPlatformMisc::IsLocalPrintThreadSafe` to return true if attached in the debugger this allows log calls to immediately print to the debug window

a follow up change is necessary to allow for attaching after the process has started
#preflight 63727f813248425305e8a6a1

[CL 23121763 by joe pribele in ue5-main branch]
2022-11-14 13:16:47 -05:00
Matt Peters
ebc8986b2e BulkDataRegistry: Compute the actual PayloadId and put it into the BulkDataRegistryPayloadId cache whenever the Payload is loaded for an EditorBulkData with a PlaceholderPayloadId. Issuing Puts in this case causes future Gets to not miss; spurious misses are expensive in the DDC cache and break our analytics. Previously we would Put only when we demanded the actual Payload Id from the build system, but this did not cover all BulkDatas for which we issue Gets, since we issue Gets speculatively without knowing for sure whether the PayloadId will be needed.
#rb Zousar.Shaker, Paul.Chipchase
#rnx
#preflight 63727a7eb663683828718abb

[CL 23121107 by Matt Peters in ue5-main branch]
2022-11-14 12:42:50 -05:00
per larsson
5264ba61a4 Bulk Data - use correct package ID
#rb enrique.garcia
#rnx
#preflight 63721846bf76990b71f3dc58

[CL 23116678 by per larsson in ue5-main branch]
2022-11-14 08:10:08 -05:00
bob tellez
9ca814bcd4 #UE Delete FArchiveObjectCrc32NonEditorProperties, and use a plain old FArchiveObjectCrc32 with ArIsFilterEditorOnly set to true to test for cook non-determinism. The logic in FArchiveObjectCrc32NonEditorProperties did not properly ignore FNames serialized in editor-only properties
[FYI] Steve.Robb

[CL 23103381 by bob tellez in ue5-main branch]
2022-11-11 14:56:19 -05:00
carlmagnus nordin
18600ecd9d Fix log spam for renaming leaked package
[REVIEW] [at]pj.kack
#preflight 636e123c953c19d43531781b
#tests client

[CL 23102277 by carlmagnus nordin in ue5-main branch]
2022-11-11 14:12:47 -05:00
paul chipchase
8912b2a25c Add the option to note if the editor bulkdata is cooked or uncooked when logging about VA pull failures
#rb Sebastian.Nordgren
#jira UE-169622
#rnx
#preflight 636d118e361bbd3c0ae5e116

- Recently we have had several incidents where there has been confusion if a VA payload pull that failed was initiated by a uncooked editor bulkdata or a cooked one. Adding the option to postfix the log message with this info for selected projects will make debugging this sort of thing easier in the future.
- Enabled by changing '[EditorBulkData]LogCookedStatus=' to true in the Editor ini file.
-- As this is only useful for projects that allow cooked content in the editor, if not then it is just noise so the post fix is disabled by default.
- Note that the check in FEditorBulkData::PullData should also be removed but that has been added as its own work item in JIRA.

[CL 23101614 by paul chipchase in ue5-main branch]
2022-11-11 13:31:11 -05:00
zhikang shao
1d9c60ec99 FFieldPath now respects CoreRedirects.
#jira UE-162160 #jira UE-142887 #rb ben.zeigler #rb benjamin.fox
FFieldPathProperty applies redirects on ImportText_Internal, automatically redirecting FFieldPath saved in string format for blueprint graph pins.
FGameplayAttribute applies redirects after deserializing unredirected value and fixes up derived properties, for UObject based assets with FGameplayAttribute properties.
UAttributeSet subclass renaming and adding ClassRedirect works now. Previously, FGameplayAttribute pins would show correct value in blueprint graphs but use incorrect value at runtime.
FGameplayAttribute renaming and adding PropertyRedirect works now. Previously, FGameplayAttribute fields in blueprint assets would break (null out), in addition to blueprint graphs using undirected value at runtime.
#preflight 636e638e8f4cb2e4dcf00c05

[CL 23098214 by zhikang shao in ue5-main branch]
2022-11-11 10:55:46 -05:00
patrick enfedaque
8e9ab48d37 Fix regression from CL 21826272 where GetAssetPathRedirection was no longer redirecting based on AssetPath causing some failed redirections of SoftObjectPaths when saving new maps
#jira UE-169239
#rb rob.millar
#preflight 636d1bfd4170db7932b265fb

[CL 23084824 by patrick enfedaque in ue5-main branch]
2022-11-10 14:03:09 -05:00
paul chipchase
9002bae096 EditorBulkData with virtualized payloads will no longer attempt to pull those payloads when creating undo states.
#rb Per.Larsson
#jira UE-169760
#rnx
#preflight 636ce62bed07daaa9abef391

- This bug was introduced with the fix for UE-169114.
- A virtualized payload can always be accessed via the virtualization system so we have no reason to serialize it during a transaction.
-- To prevent this we simply don't try to load the payload into memory if it is virtualized.
- While investigating this I noticed an additional minor issue that the << overload added for FSharedBuffer was treating a 0 length valid FSharedBuffer and a null FSharedBuffer as the same thing which is not exactly the case.
-- A 0 length buffer will return false for FSharedBuffer::IsNull and will allocate an owner structure internally. A null buffer will not allocate an owner and will return true for FSharedBuffer::IsNull
-- This is a minor distinction which was unlikely to be causing problems but should be fixed for technical accuracy.
-- We now write INDEX_NONE for the buffer length if the buffer is null and when reading we simply reset the buffer if we see that the length is INDEX_NONE rather than trying to create a valid buffer.

[CL 23079600 by paul chipchase in ue5-main branch]
2022-11-10 10:49:44 -05:00
pj kack
de9fee5ade ZenLoader in editor: Improve handling of sync loads of packages with circular dependencies.
Add additional early outs from ProcessLinkerLoadPackageImports when a package has already been processed in a deeper circular dependency recursion stack.
Relax SyncLoadContextId constaints since when a package has been added to PackagesExcludedFromStateDependencyChecks due to a circular package dependency it may have been pulled into a higher sync load context id than the currently executing one.

#rb carlmagnus.nordin
#rnx
#preflight 636cb93963037c102604a566

[CL 23074568 by pj kack in ue5-main branch]
2022-11-10 05:16:25 -05:00
daniel lamb
bad5e26212 Fixed crash when loading maps using ZenLoader.
[REVIEW] [at]Carl.Magnus.Nordin

[CL 23071869 by daniel lamb in ue5-main branch]
2022-11-10 01:10:31 -05:00
pj kack
8b697706e2 AsyncLoading2: Fix infinite wait for io issue part 2 (see 23028119 for part 1)
Make sure to always leave the waiting for io state if there are no more io requests to wait for.

#rb carlmagnus.nordin
#rnx
#preflight 636bdde4dc30a4ce960a9956

[CL 23071830 by pj kack in ue5-main branch]
2022-11-10 01:09:05 -05:00
nick darnell
3845a7f3a6 Editor - Introducing a new helper utility class, FWarnIfAssetsLoadedInScope exists in CoreUObject so that it can be used in lots of places, but it will only work in Editor builds, so it is marked as such. It allows you to throw a scope around some code to detect unexpected asset loads during that scope and then emit them as errors in the editor. It wont warn anyone that doesn't have -WarnIfAssetsLoaded in their commandline. It's a great little debugging utility when you're trying to prevent unexpected hitches from being introduced into the editor from unnessesary loads.
#jira UE-165574

[CL 23071814 by nick darnell in ue5-main branch]
2022-11-10 01:08:11 -05:00
nick darnell
51a6763dca FAssetData - You can now pass in EResolveClass::Yes or EResolveClass::No, into GetClass and IsInstanceOf on FAssetData in order to ask it to load classes that it can't find.
#jira UE-165574

[CL 23071802 by nick darnell in ue5-main branch]
2022-11-10 01:07:46 -05:00
pj kack
59b93a60d9 AsyncLoading2: Fix infinite wait for io issue caused by decreasing PendingIoRequestsCounter too late in cl 22264831.
Improve handling of ProcessPendingCDOs by relying on the SyncLoadContext instead of a combination of PendingIoRequestsCounter and ReferencerRequestId.
Only create CDOs for packages in the current sync load context when there is one.
Add and release barriers for all export bundle nodes, not only the first one.

#rb carlmagnus.nordin
#preflight 636a5903f56cab38c71d778b

[CL 23031398 by pj kack in ue5-main branch]
2022-11-08 12:28:31 -05:00
bryan sefcik
45e50a215f Updated UObject::SaveConfig to not flush all the configs but instead only flush the updated config.
Before: 837ms
After: 46ms

#rb josh.adams
#jira
#preflight 63653a331052c15f131063bf

[CL 22998041 by bryan sefcik in ue5-main branch]
2022-11-04 19:05:59 -04:00