Commit Graph

5945 Commits

Author SHA1 Message Date
andrew scheidecker
db8b08d7ae Fix FOptionalProperty::ConvertFromType handling of converting from an optional boolean property to something else.
#rb Devin.Doucette, Steve.Robb
#okforversepublic

[CL 32048220 by andrew scheidecker in ue5-main branch]
2024-03-06 04:00:29 -05:00
matt peters
454b47e36a IncrementalCook: Add FCookDependency to record external-file and generic-function dependencies that should invalidate the cook-saved version of a package when they change.
#jira UE-203846
#rnx
#rb Devin.Doucette

[CL 32031201 by matt peters in ue5-main branch]
2024-03-05 14:41:03 -05:00
tim smith
9e2d90ae37 Fixed verse build phase to happen after new UObjects have been registered in the engine. Wrong delegate was being used causing the build to happen prior to UObject definitions in some instances.
#rb Markus.Breyer

[CL 32016832 by tim smith in ue5-main branch]
2024-03-05 07:55:24 -05:00
devin doucette
f806a8c06c Fixed property bag tests to use the new SetType function on FPropertyTag
#rnx

[CL 32005366 by devin doucette in ue5-main branch]
2024-03-04 18:56:08 -05:00
devin doucette
cfa21cefff Removed new tag-related functions from FProperty
These have been replaced by LoadTypeName/SaveTypeName/CanSerializeFromTypeName.

#jira UE-197352
#rb Zousar.Shaker
#rnx

[CL 32005011 by devin doucette in ue5-main branch]
2024-03-04 18:45:51 -05:00
russell johnston
7344f83d62 Native methods and FVerseValue fields in VerseVM
Replace `TVerseFunction` and its `FProperty` with a `VRestValue`.
Unify `TVerseFunction` and `FInteropUtils::TryInvoke...` for calling methods vs module/interface functions. (This includes fixing named non-defaulted parameters in the `TVerseFunction` path, apparently previous unused.)
Wrap the `verse::task*` result of `<native_callable>` APIs in `FVerseTask`; remove `Cancel` from `TVerseCall` (see SOL-6056).

Switch to decorated but unmangled names in VNI-generated binding glue.
Switch to decorated method names in VerseVM to match the binding glue.
Run `UVerseVMClass` CDO initialization after binding glue computes class layout.

Always create a `UObject` for `<native>` classes, now that their methods are bound.

#rb markus.breyer, tim.smith
#okforversepublic

[CL 32004566 by russell johnston in ue5-main branch]
2024-03-04 18:32:21 -05:00
devin doucette
ac88192f75 Changed FPropertyBag to use complete type names from the property tag
#rb jordan.hoffmann
#rnx

[CL 32003360 by devin doucette in ue5-main branch]
2024-03-04 17:44:15 -05:00
devin doucette
2807197a97 New engine version to serialize FPropertyTag more compactly and with complete property type names
#jira UE-197352
#rb Andrew.Davidson, Phillip.Kavan
#lockdown Marc.Audy

[CL 31999405 by devin doucette in ue5-main branch]
2024-03-04 15:42:11 -05:00
graeme thornton
6c559c6afd Reduce package hash collision logging to verbose
#rb PJ.Kack

[CL 31996515 by graeme thornton in ue5-main branch]
2024-03-04 14:09:36 -05:00
tim smith
bb82c364fa [Backout] - CL31986565
[FYI] Tim.Smith
Original CL Desc
-----------------------------------------------------------------
Fixed verse build phase to happen after new UObjects have been registered in the engine.  Wrong delegate was being used causing the build to happen prior to UObject definitions in some instances.

#rb Markus.Breyer

[CL 31992544 by tim smith in ue5-main branch]
2024-03-04 12:47:35 -05:00
tim smith
20a0554192 Fixed verse build phase to happen after new UObjects have been registered in the engine. Wrong delegate was being used causing the build to happen prior to UObject definitions in some instances.
#rb Markus.Breyer

[CL 31986595 by tim smith in ue5-main branch]
2024-03-04 08:30:11 -05:00
steve robb
4b9df47bf3 Slightly refactored FEnumProperty::ImportText_Internal to make an upcoming change easier.
#rb devin.doucette

[CL 31985663 by steve robb in ue5-main branch]
2024-03-04 07:21:16 -05:00
dan oconnor
598368a15b Cleaned up SCD management on blueprint compile and asset reload - recommit of 31949581 with extra call to PropagateSparseClassDataToNewClass before functions are compiled (and CDO is potentially created). We want the SCD to be available before a CDO is generated
#rb ben.hoffman, Phillip.Kavan

[CL 31964158 by dan oconnor in ue5-main branch]
2024-03-01 19:32:28 -05:00
maxime mercier
50c88ecf5c Fix the fact that not all instanced properties are referencing instanced objects.
#rb bryan.robertson, kurtis.schmidt

[CL 31960626 by maxime mercier in ue5-main branch]
2024-03-01 18:07:11 -05:00
devin doucette
a4b19dbaef Fixed use of a deprecated variable in PropertyBagTest
#rnx

[CL 31960032 by devin doucette in ue5-main branch]
2024-03-01 17:45:14 -05:00
devin doucette
cc9e787c79 Deprecated fields on FPropertyTag that are now represented by its TypeName
#rb Steve.Robb
#rnx

[CL 31959452 by devin doucette in ue5-main branch]
2024-03-01 17:32:43 -05:00
matt breindel
3c6cf59c14 Infrastructure and general implementation of a new system for providing improve error messages when we skip loading a package during import because the plugin wasn't mounted. the plugin manager and the GameFeatureSubsystem now have an opportunity to provide additional information to the user about why the plugin wasn't loaded or the package wasn't found.
#jira UE-205029
[REVIEW] [at]will.brown [at]*eric.knapik [at]*danny.couture
[FYI] [at]francis.hurteau
#rb danny.couture, Eric.Knapik

[CL 31957199 by matt breindel in ue5-main branch]
2024-03-01 16:48:08 -05:00
dan oconnor
42d6613b39 Undo changelist 31949581 - this is causing a cook failure
#rb dan.oconnor

[CL 31955346 by dan oconnor in ue5-main branch]
2024-03-01 16:10:42 -05:00
dan oconnor
dc87592e86 Cleaned up SCD management on blueprint compile and asset reload
#rb ben.hoffman, Phillip.Kavan

[CL 31949731 by dan oconnor in ue5-main branch]
2024-03-01 13:43:54 -05:00
devin doucette
5e98f213c4 Added functions to FPropertyTypeName to query for structs and enums
These are convenience functions that cover most usage of FPropertyTypeName outside of CoreUObject.

#rb Steve.Robb
#rnx

[CL 31949226 by devin doucette in ue5-main branch]
2024-03-01 13:29:27 -05:00
maxime mercier
25cb948b08 Take 2 at fixing edit property chain in overridable manager when changing values on a subobject
#rb kurtis.schmidt

[CL 31947181 by maxime mercier in ue5-main branch]
2024-03-01 12:31:26 -05:00
tim smith
fa0b37588c Improve the support for notification that UObjects have been registered. This includes the callback always being registered regardless of the target options.
#rb ben.zeigler, tim.smith

[CL 31944532 by tim smith in ue5-main branch]
2024-03-01 11:00:06 -05:00
kevin macaulayvacher
abfebd7d6f Improves the performance of CoreRedirects
::Before::
- Boot -> PIE (6m3s)
- FCoreRedirects::RedirectNameAndValues: 18s

::After::
- Boot -> PIE (5m41s)
- FCoreRedirects::RedirectNameAndValues: 5.3s


- MatchWildcard=true support has been added to how CoreRedirects are defined in INI files. You may now define OldName="...SomeSuffix", OldName="SomePrefix..." or OldName="...SomeSubstring..." to perform string manipulation based matching for redirects, deprecating MatchSubstring=true
- Substring matches are very expensive compared to pure FName matching or even prefix and suffix matching. This expense is problematic since the presence of a substring matching rule can mean that all queries for a particular redirect type, such as package name, will need to perform the substring check even if a substring match is relatively uncommon. To combat this cost, we add a reimplementation of the PM-k, (PredictMatch-8) algorithm. This allows a redirect query to check for substring matches against _all_ possible substrings with a single pass over the redirect query name. The fuzzy matching is designed such that false positives may occur but not false negatives. When a fuzzy match is found we must perform the slow substring match to confirm. However fuzzy matching allows use to dramatically reduce our string scannin. In a case where there were 4 MatchSubstrings, from boot to PIE, we now perform slow substring matches < 0.8% of the time compared to previously.
- Replaces `FString` manipulation during redirect queries to instead use a small wrapper type `FNameUtf8String` which provides a small API to allow for FName comparisons, building and ultimately reducing copies. UTF8 is used since we need to ensure we have an encoding that we can keep the same for storing wildcard strings that will match how we query for wildcard matches. UTF8 is byte efficient for ANSI text, which improves fuzzy match prediction.

==========================================
Substring Stats
Substring Lookups:                24342736
Prediction Hit:                   72
Prediction Miss:                  213377
==========================================

#jira UE-204063
#rb Matt.Peters
[FYI] Francis.Hurteau

[CL 31941627 by kevin macaulayvacher in ue5-main branch]
2024-03-01 08:57:14 -05:00
russell johnston
021325401a Missing forward declaration for VUniqueString
[CL 31930460 by russell johnston in ue5-main branch]
2024-02-29 19:15:50 -05:00
sebastien lussier
e66f0a1c8c World Partition - Cooking: Prevent the shared data from an instancing context from being modified while loading actors packages
* Fixes a case where actors could be missing from cooked WP cells
#rb JeanFrancois.Dube, Richard.Malo

#tests Ran the problematic UEFN project through cooking locally, no more missing actors

[CL 31925640 by sebastien lussier in ue5-main branch]
2024-02-29 17:19:59 -05:00