Commit Graph

3007 Commits

Author SHA1 Message Date
jared cotton
174ef78ac6 SOL-5744 - "Add support for constrained int/float types"
- Adds VConstrainedInt and VConstrainedFloat
- Updates CIntType to use `struct Constraint : public TOptional<int64_t>` to allow for unbounded ints
    - Did not implement logic supporting use of unbounded ints within the Solaris library... this is just for VM support atm
- Changed VInt to derive from VValue to support using it with TWriteBarrier

#rb russell.johnston, Tim.Smith
[FYI] Won.Chun (for the VerseJsonInterfaceGen.cpp change's for CIntCype)

[CL 33269805 by jared cotton in ue5-main branch]
2024-04-26 13:28:10 -04:00
per larsson
e5610c178b Do not crash when waiting or cancelling a bulk data request that has not been started.
#rb Paul.Chipchase

[CL 33257668 by per larsson in ue5-main branch]
2024-04-26 02:30:13 -04:00
phillip kavan
840cc5310d Disable TObjectPtr placeholder type flag checks in editor runtime (not in use atm).
#jira UE-212439
#rb Francis.Hurteau

[CL 33202814 by phillip kavan in ue5-main branch]
2024-04-24 12:32:43 -04:00
matt peters
3954d4cf5b CookDependency: Fix typo at end of line that converted int compare into a bool value (uncovered by static analysis compiler).
#rnx
#rb matt.peters
#rbself trivial

[CL 33198446 by matt peters in ue5-main branch]
2024-04-24 10:01:43 -04:00
matt peters
836a49f287 IterativeCook: TransitiveBuildDependencies
UObjects can declare a transitiveBuildDependency for their package on another package. Only used in Incremental cooks, not used in legacy iterative cooks. If the target package of a TransitiveBuildDependency is invalidated by any of its dependencies, the source package is also invalidated. This is the same behavior that all package dependencies have in legacy iterative cooks, but in incremental cook the behavior of a package dependency is that only the direct holder of the dependency is invalidated. TransitiveBuildDependencies add the capability to have in incremental cooks that transitive invalidation from legacy iterative cooks.
The first use case is UMaterialInstanceConstant, which needs to be invalidated if any of the UFunction shader files used by its UMaterial are modified.
#jira UE-203846
#rnx
#rb Zousar.Shaker

[CL 33196917 by matt peters in ue5-main branch]
2024-04-24 08:30:54 -04:00
tim smith
acb9d7a6e0 Initial but incomplete implementation of saving property type information to the VClass.
#rnx
#rb russell.johnston

[CL 33195466 by tim smith in ue5-main branch]
2024-04-24 06:21:24 -04:00
kirill zorin
bf04830828 SOL-6284: initializing archetype proxy vars before PostInitProperties() fires
#rb andy.sonnenburg, Robert.Manuszewski

[CL 33147435 by kirill zorin in ue5-main branch]
2024-04-22 15:30:40 -04:00
kevin macaulayvacher
97a2995cd9 UObject::Rename will no longer call ResetLoaders as this frequently breaks recursive loads by resetting the loader currently in use. This change removes the functionality and a follow-up change will remove the define from usage.
Unless moving a CDO or moving to the transient package, an object moving out of it's package will have it's linker nulled but not reset.

#jira UE-211383
#rb Francis.Hurteau
[FYI] Francis.Hurteau

[CL 33136565 by kevin macaulayvacher in ue5-main branch]
2024-04-22 09:13:14 -04:00
robert millar
187458c7bd Implementing TOptional intrusive unset state support for FOptionalProperty.
Add new required FProperty methods HasIntrusiveUnsetOptionalState, InitializeOptionalIntrusive, IsOptionalSetIntrusive, ClearOptionalIntrusive.
Implement specific handling for not-null object pointers.
Defer to template function ::HasIntrusiveUnsetOptionalSate<T> for native struct types and types using cpp type fundamentals.

#rb Andrew.Scheidecker, Johan.Torp

[CL 33117302 by robert millar in ue5-main branch]
2024-04-19 17:10:53 -04:00
josh adams
aa9f467754 - More complex engine changes after plaform investigation
#rb Chris.Babcock, David.Harvey, Nicholas.Frechette

[CL 33101826 by josh adams in ue5-main branch]
2024-04-19 10:01:44 -04:00
matt peters
3da2c17c2e Cooker: Add the ability to declare CookRuntimeReferences from UObject::Presave, for object classes that are culled on the targetplatform due to e.g. IsNeededForClientLoad=false but still want to add their references to the cook for that platform.
#rnx
#rb anton.dunchev, Zousar.Shaker

[CL 33099549 by matt peters in ue5-main branch]
2024-04-19 07:43:41 -04:00
danny couture
0e62e49cda [CoreGlobals]
- Add accessors for GPlayInEditorID and deprecate the global

#rb kevin.macaulayvacher

[CL 33099149 by danny couture in ue5-main branch]
2024-04-19 07:02:16 -04:00
jamie dale
de6d59a306 Fixed GFPs failing to build their package localization cache when loading their asset registry data async
We need to refresh the package localization cache for the GFP after the asset registry data has loaded, as we need the asset registry data to correctly build the package localization cache

#rb Justin.Marcus, Rex.Hill

[CL 32981582 by jamie dale in ue5-main branch]
2024-04-15 20:53:18 -04:00
steve robb
fe37d1b9cf Added FUtf8StrProperty and FAnsiStrProperty.
#rb robert.manuszewski
#jira UE-204743

[CL 32978903 by steve robb in ue5-main branch]
2024-04-15 19:00:49 -04:00
maxime mercier
2e6a91fd94 Disable the overridable serialization in non editor builds
#jira UE-212057
#rb Yoan.StAmant

[CL 32972609 by maxime mercier in ue5-main branch]
2024-04-15 11:47:45 -04:00
logan buchy
3034b811d1 Allow GetOptions functions for FName and FString properties to specify a Display Name in addition to value
Opt-in by creating a UFUNCTION with the signature:
`TArray<FPropertyTextFString> GetOptionsWithStrings()`
or
`TArray<FPropertyDisplayNameFName> GetOptionsWithFNames()`

and in the UPROPERTY macros point to the function
```
UPROPERTY(EditAnywhere, meta=(GetOptions="GetOptionsWithStrings"))
FString/FName MyProperty;
```

or

```
UPROPERTY(EditAnywhere, meta=(GetOptions="GetOptionsWithFNames"))
FString/FName MyProperty2;
```

This should bring GetOptions closer to feature parity with enums.  Enums still have one advantage of allowing for tooltips to also be specified.

#rb brooke.hubert
#jira UE-205226

[CL 32950305 by logan buchy in ue5-main branch]
2024-04-12 19:27:23 -04:00
jamie dale
6056052146 Added verbose logging for localized package discovery and resolution
#rnx

[CL 32949940 by jamie dale in ue5-main branch]
2024-04-12 19:15:26 -04:00
brandon schaefer
765aa207c2 OnCommit for Removal and Open and Abort during Add for Annotations
#rb Robert.Manuszewski
#jira UE-212057

[CL 32943355 by brandon schaefer in ue5-main branch]
2024-04-12 16:34:37 -04:00
matt peters
269f78a7f2 SavePackage: DiffOnly Cooks and PropertyOverrides: when the DiffOnly cook calls SavePackage a second time to gather callstacks, it skips the call to PreSave on each object, but PreSave can write to PropertyOverrides. Save the PropertyOverrides from the first save and pass them into the second save.
#rnx
#rb Francis.Hurteau

[CL 32938506 by matt peters in ue5-main branch]
2024-04-12 14:35:01 -04:00
dario mazzanti
0ff5641deb [Reference Viewer] Hang/crash when too many assets reference a file
- Unlimited breadth checkbox is removed as suggested in Jira comments.
 - Max slider is set to 1000 to match max allowed value.
 - The bLimitSearchBreadth bool UPROPERTY of UReferenceViewerSettings now marked as deprecated in config.
 - SReferenceViewer::RefilterGraph() now executing on a Tick, only if not already executing. This helps when scrubbing breadth slider in reference viewer for classes with a huge graph (see FortMiniMapIndicator mentioned in this Jira)
 - Added slow task Dialog, so that users have feedback while graph is being created for assets/classes with many references

#jira UE-206322
#rb brooke.hubert

[FYI] ben.zeigler

[CL 32932895 by dario mazzanti in ue5-main branch]
2024-04-12 12:08:11 -04:00
mattias hornlund
da0f053537 Optimized PreReplication to not lookup fRepChangedPropertyTracker unless required.
This also allows SetPropertyActiveOverride macros to be called outside of PreReplicate to move towards proper push model.
Removed some old deprecated code

#rb Peter.Engstrom

[CL 32891697 by mattias hornlund in ue5-main branch]
2024-04-11 11:19:30 -04:00
saam barati
aed1ad5fc0 Implement deep mutability
#rb Russell.Johnston Tim.Smith

This patch implements deep mutability in the new VM. To do this, I implemented the following:
- Renamed IndexSet to CallSet for name parity with call.
- Made it so we can freeze and melt structs. This wasn't implemented before. To melt a struct, we create a new emergent type where all fields live in the object itself. The melted struct will use this emergent type. We also cache this resulting emergent type on the source emergent type so that freezing all structs with emergent type E1 always produce and object with emergent type E2.
- Emit freeze/melt inside the bytecode generator at the right times. This patch emits freeze/melt unoptimally. We'll need to do FoX in the future to get better perf.
- We pattern match against the AST to match the section of AST that corresponds to a successive list of accesses that are all part of the same deep mutation. We use this to drive codegen for deep mutability.
- Refactor our intrinsics so the code for `set ... = ` can be shared with things like `set ... +=`.

[CL 32869234 by saam barati in ue5-main branch]
2024-04-10 19:46:58 -04:00
jared cotton
2a94650645 SOL-6249 - "Melt/Freeze shouldn't use FOpResult"
- Changed return values of Melt/Freeze to VValue
- If Melt returns a placeholder, it is treated as FOpResult::Block is and we suspend on it
- Removed deep-copy of VMap keys on Melt/Freeze as they are not mutable.

[CL 32868743 by jared cotton in ue5-main branch]
2024-04-10 19:37:42 -04:00
jordan hoffmann
ba7708338c Unshelved from pending changelist '32714305':
[CrashFix] Array properties aren't idempotent when override serialization is enabled so we need to avoid deserializing them twice during IDO generation. This change will skip any non-loose properties during the Preload pass so that only the loose properties are deserialized, then the non-loose ones will get set during the CopyTaggedProperties pass
#rb Devin.Doucette

[CL 32867663 by jordan hoffmann in ue5-main branch]
2024-04-10 19:13:51 -04:00
joe kirchoff
fb6334a7c2 [Backout] - CL32838690
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
Prevent clang analysis warnings for uninitialized data from FArchive derived readers

#rnx

[CL 32857977 by joe kirchoff in ue5-main branch]
2024-04-10 11:20:19 -04:00