Commit Graph

3741 Commits

Author SHA1 Message Date
andrew rodham
c191be9bbb Added TBaseStructure specialization for FFrameRate
[CL 34526989 by andrew rodham in ue5-main branch]
2024-06-20 09:36:03 -04:00
matt breindel
c1a9c150ef Adding support for Type_Asset redirections to FCoreRedirects::FindPreviousNames.
[REVIEW] [at]*matt.peters
#rb Matt.Peters

[CL 34514062 by matt breindel in ue5-main branch]
2024-06-19 17:02:18 -04:00
per larsson
129585ee43 Added option -CookSoftPackageReferences to save soft package references when cooking
#rb Matt.Peters, Paul.Chipchase
#rnx

[CL 34503130 by per larsson in ue5-main branch]
2024-06-19 12:16:51 -04:00
matt breindel
c43ad58cd1 Adding support for a new type of FCoreRedirect, Type_Asset which can be used in place of UObjectRedirector.
[REVIEW] [at]*ben.ziegler [at]francis.hurteau [at]kevin.macaulayvacher [at]matt.peters
#rb Francis.Hurteau, kevin.macaulayvacher, Matt.Peters

[CL 34470455 by matt breindel in ue5-main branch]
2024-06-18 13:52:50 -04:00
russell johnston
28f8c59883 Acquire Verse heap access for the game thread at the same time Verse is initialized
The game thread context uses manual stack scanning mode, and FrankenGC sets the stack as empty during marking.

This enables module startup to use the Verse heap (previously the context was created too late), and ensures that there is always a Verse context available while FrankenGC is enabled.

#rb Tim.Smith

[CL 34469229 by russell johnston in ue5-main branch]
2024-06-18 13:30:54 -04:00
andrew phillips
478e8d378f Added static methods to SoftObjectPath add information at the callsite.
These should used instead of constrcutors.

#jira UE-204742
#rb Steve.Robb

[CL 34453699 by andrew phillips in ue5-main branch]
2024-06-18 06:23:33 -04:00
jordan hoffmann
72807379f1 [BugFix] Made sure all loose properties are marked as serialized when rebuilding verse code. This allows those properties to be visible in the left panel of the fixup tool
[CL 34443960 by jordan hoffmann in ue5-main branch]
2024-06-17 18:12:32 -04:00
kevin macaulayvacher
276d09f6df Remove all simple usage of REN_ForceNoResetLoaders from the codebase since the flag has been deprecated and currently does nothing. Simple in this case is direct use of the flag with no conditional logic. More complex uses were removed in another change.
#rnx
#rb Francis.Hurteau

[CL 34424068 by kevin macaulayvacher in ue5-main branch]
2024-06-17 11:55:02 -04:00
jordan hoffmann
d40b74b69f [CorruptionFix] Fixed bug that caused type conversions to corrupt data in the fixup tool
[BugFix] Fixed bug that caused sub-properties of loose struct properties to not become marked as loose as well

[CL 34387528 by jordan hoffmann in ue5-main branch]
2024-06-14 18:44:43 -04:00
ben woodhouse
2ea61ce0c6 Switch to CSV_PROFILER_STATS instead of CSV_PROFILER for various profiling subsystems. This allows them to be compiled out when CSV_PROFILER_MINIMAL is defined.
As part of this change we also promote dynamic resolution and IO/PackageQueueDepth stats to Minimal since they're important for high level performance reporting.
Also fix up a few places that were redundantly using #if CSV_PROFILER around CSV macros.

#rb mickael.gilabert

[CL 34386798 by ben woodhouse in ue5-main branch]
2024-06-14 18:16:47 -04:00
jordan hoffmann
7f04a77c76 - Changed "PropertiesSetBySerialization" to "SerializedProperties" and made the flag get set even for properties that were skipped during serialization. This way it's a better reflection of which properties were in the old class
- removed GMarkPropertiesSetBySerialization and added bTrackSerializedProperties flag to FUObjectSerializeContext to avoid race conditinons
#jira UE-217800
#rb Devin.Doucette

[CL 34385324 by jordan hoffmann in ue5-main branch]
2024-06-14 17:29:03 -04:00
devlin willis
1d561b08d9 Allow TBaseStructure to be used with FDoubleRange and FDoubleRangeBound
[REVIEW] [at]pi-cosmetics-tech-all
#tests Standard Build + Cooked Client testing
#rnx

[CL 34383082 by devlin willis in ue5-main branch]
2024-06-14 16:26:30 -04:00
devlin willis
fdb23d66ce [Backout] - CL34379666
[FYI] Devlin.Willis
Original CL Desc
-----------------------------------------------------------------
Allow TBaseStructure to be used with FDoubleRange and FDoubleRangeBound

[REVIEW] [at]pi-cosmetics-tech-all
#tests Standard Build + Cooked Client testing
#rnx

[CL 34381934 by devlin willis in ue5-main branch]
2024-06-14 15:58:41 -04:00
devlin willis
c70e3603e4 Allow TBaseStructure to be used with FDoubleRange and FDoubleRangeBound
[REVIEW] [at]pi-cosmetics-tech-all
#tests Standard Build + Cooked Client testing
#rnx

[CL 34379772 by devlin willis in ue5-main branch]
2024-06-14 14:53:30 -04:00
dan oconnor
a420a00c3d Fall back to an FArchive and FReferenceCollector based method of reference collection when objects that are referencing only via weak references need to be included in the result. Also report EdGraphPin SubCategoryObject based references in editor. Fix various ReloadPackage bugs and remove iterative referencer searching.
#rb Johan.Torp
[RN] Fixed updating of objects that only reference a blueprint or its instances via weak references

[CL 34375782 by dan oconnor in ue5-main branch]
2024-06-14 12:59:10 -04:00
devin doucette
584ea89945 Increased FProperty::IndexInOwner from uint16 to int32 to support types with many properties
#rb Francis.Hurteau

[CL 34372792 by devin doucette in ue5-main branch]
2024-06-14 11:32:26 -04:00
jamie dale
a886ad2faf Split the StaticFindObjectFast fatal log into two so that we can tell which condition is triggering it
[FYI] Francis.Hurteau
#rnx

[CL 34358739 by jamie dale in ue5-main branch]
2024-06-13 18:55:47 -04:00
jordan hoffmann
0d5bf569da [BugFix] Prefab instances aren't getting prefab values for properties that aren't overriden
#rb francis.hurteau

[CL 34356636 by jordan hoffmann in ue5-main branch]
2024-06-13 18:01:55 -04:00
steve robb
206d9d76b4 Replaced EAutomationTestFlags::ApplicationContextMask with EAutomationTestFlags_ApplicationContextMask.
[CL 34335388 by steve robb in ue5-main branch]
2024-06-13 07:06:47 -04:00
kevin macaulayvacher
357c98fb83 - UObject::Rename will always remove a mismatching linker unless explicitly told not to via a new rename flag REN_AllowPackageLinkerMismatch. This is meant to be distinct from the deprecated REN_ForceNoResetLoaders as the intent is inverted: There are few reasons to not want to reset loaders when there is a mismatch between package and linker, and when there is no mismatch, we do not want Rename to implicitly resetloaders (we no longer do as of 33136565). The only use case where mismatched linkers is desired is when objects are _temporarily_ renamed to belong to a staging package and desire to have the object continue loading when the object is moved back to the matching linker package (commonly done during blueprint reinstancing). In such a case, the new flag acknowledging the intentional mismatch is meant to be used.
- Any code causing a linker mismatch needs to explicitly clear loading flags for their object to avoid asserting. This is to make the intention clear that rename will make loading correctly impossible when moving the object to a different linker unintentionally. So either clear the loading flags of the object (i.e. finish loading via load calls such as ConditionalPostLoad) or forcibly allow mismatching via the new flag.

- When marking an export as invalid in FLinkerLoad::InvalidateExport() we now also clear loading flags since it is wasteful to load invalid objects.

- Exports marked as invalid are no longer reset to be valid when the linker is reset for the object instance. This is to prevent reloading invalid objects when re-using a linker already resident in memory if a subsequent package load is requested.

- When UStruct upgrades UFields to FFields, the UStruct objects are marked as invalid to prevent reloading the objects unnecessarily

- Fixes an issue where since Rename can clear the linker for mismatched types, any calls to FLinkerLoad::InvalidateExport needs to be moved before the rename operation to be effective.

- CollectUnreachableObjects will no longer mark unreachable objects as invalid in the linkerloader. That code would mark objects as invalid until the linker is destroyed which incorrectly assumed would happen soon. If however a load for the same package occurs before the linker is destroyed, the in-memory linker would be re-used keeping the marked exports as invalid so those exports would not be loaded (even though they should have been).

#jira UE-212466 UE-214849
#rb Francis.Hurteau, Michael.Galetzka
[RN] UObject::Rename will always remove the renamed object's linker if the rename moves the object into a different package. As a result, any renames occuring while an object is loading will now assert instead of leading to hard to diagnose crashes long after the Rename call has completed. If renaming to a different package is intentional and the linker should not be cleared, the new flag REN_AllowPackageLinkerMismatch can be used to prevent clearing linkers on the object even though the linker is for a different package than the package has been renamed to be part of.

[CL 34304935 by kevin macaulayvacher in ue5-main branch]
2024-06-12 08:47:36 -04:00
guillaume patry
d762924500 Support interfaces in FObjectPropertyBase::CheckValidObject
#rnx

[CL 34291760 by guillaume patry in ue5-main branch]
2024-06-11 17:14:33 -04:00
devin doucette
b7be3b322a Added storage of unknown enum names
#jira UE-211458

[CL 34290747 by devin doucette in ue5-main branch]
2024-06-11 16:48:27 -04:00
jordan hoffmann
0a28e28957 [BugFix] CLASS_NewerVersionExists should only impact whether new IDOs get created *not* whether IDOs get saved to disk
[CL 34219186 by jordan hoffmann in ue5-main branch]
2024-06-07 19:24:14 -04:00
jordan hoffmann
f892e8b1b6 [BugFix] Various UI bug fixes and updates for the InstanceDataObjectFixupTool
- changed the FRedirectedPropertyNode to use UE::FPropertyTypeName for it's types so that containers are distinguishable from one another
- made the fixup tool tabs have the name of the object they're fixing
- fixed the needs fixup warning to open several fixup tools if more than one object needs fixup rather than attempting multi-edit
- exluded VerseFunctionProperty from being made into loose properies since they can't realistically get fixed up
- fixed issue that caused incorrect properties to get marked as set by serialization during object copies

[CL 34210729 by jordan hoffmann in ue5-main branch]
2024-06-07 14:59:08 -04:00
ronald koppers
95d5fe7f46 Add TEDS' alert columns to the placeholder rows and components with loose properties.
The following additional changes were made:
- The fix up panel can now take an owning object. This is useful to lookup the object used by the component as in cases likes TEDS the object is used as the reference point.
- Added the central function `CreateInstanceDataObjectFixupDialog` to open up the fixup dialog with at least one tab. There are now multiple cases in code where this happens so helps keep consistency and reduce duplicated code.
- Added a new tag to identify loose properties.
- Added new TEDS queries for monitoring loose properties or placeholder tag and alerts so an alert action is added that pops up the fix-up tool.
- Expanded `RequiresFixup` to allow for recursively finding nested objects that require fixing up.
- Added `FindNestedInstanceDataObject` to allow IDOs to be retrieved for nested objects as well. An example is an entity with components that require fixing up, or all known IDOs under an object.
- Removed the memento registration for alerts. After a fix was done the memento would restore the alert again after it was cleared. A finer control over when alerts are recorded as mementos is needed.

#jira UE-215480
#rb jordan.hoffmann, Phillip.Kavan
[RN] Objects that fail to load now display an icon in the Outliner. Clicking the icon will bring up a tool that allows fixing issues.

[CL 34166340 by ronald koppers in ue5-main branch]
2024-06-06 14:06:27 -04:00