Commit Graph

385 Commits

Author SHA1 Message Date
Helge Mathee
25659c95a1 RigVM: Remove use of UE_RIGVM_UCLASS_BASED_STORAGE_DISABLED define
#rb sara.schvartzman
#jira na
#preflight https://horde.devtools.epicgames.com/job/6206623a963efc0c28d83c37

[CL 18951321 by Helge Mathee in ue5-main branch]
2022-02-11 08:48:47 -05:00
Richard TalbotWatkin
33a1078f29 Fixed UHT code generation issue which was accidentally transposing the ClassDef and MetaClassDef for TObjectPtr<UClass> properties.
#rb Robert.Manuszewski
#preflight 62028f8dae203853a856e15b

[CL 18902731 by Richard TalbotWatkin in ue5-main branch]
2022-02-08 10:57:14 -05:00
Robert Manuszewski
13573e3787 Refactoring compiled-in FProperty constructors so that they have the same signature
#jira SOL-1981
#rb Steve.Robb
#preflight 61dc0bbcaf44b43628348c9b

[CL 18558135 by Robert Manuszewski in ue5-main branch]
2022-01-10 06:22:03 -05:00
jamie dale
d5c1b0098d Avoid creating redundant sparse class data instances in cooked games
The process of cooking would ensure that every BP derived from a C++ base using sparse class data would have its own sparse class data instance, as the serialization function would create an instance on save/load. This could potentially result in a lot of redundant instances that don't override any data from their archetype.

These changes allow the API for accessing sparse class data to optionally fallback to using the archetype data when possible (controlled via the EGetSparseClassDataMethod enum), though any existing code already using GetOrCreateSparseClassData (or the UHT wrapper) will continue to always create a new instance.

BPGC serialization has been updated to only save the sparse class data when it has overridden data from its archetype, and the loading code will now avoid creating the instance when no override data has been saved. This allows new code to take advantage of EGetSparseClassDataMethod by choosing to reference the archetype data instead, and the engine has also been updated to avoid calling GetOrCreateSparseClassData where possible.

Anything that requires a mutable sparse class data instance should still use GetOrCreateSparseClassData (or the UHT wrapper that doesn't take EGetSparseClassDataMethod), as otherwise you may edit data belonging to your archetype (which is why GetSparseClassData returns const data).

#preflight 61b28ecdc01c89f906c4d72f
#rb Fred.Kimberley, Thomas.Sarkanen

#ROBOMERGE-AUTHOR: jamie.dale
#ROBOMERGE-SOURCE: CL 18442650 via CL 18443219 via CL 18443223 via CL 18443224 via CL 18444418 via CL 18445355
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18445518 by jamie dale in ue5-release-engine-test branch]
2021-12-13 13:44:37 -05:00
daniel lamb
59b0d62040 Added temporary code to log all files when UHT fails.
Tim.Smith
[FYI] Tim.Smith
#preflight skip

#ROBOMERGE-AUTHOR: daniel.lamb
#ROBOMERGE-SOURCE: CL 18325461 via CL 18326818 via CL 18326973 via CL 18327001 via CL 18328442 via CL 18328531
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18328632 by daniel lamb in ue5-release-engine-test branch]
2021-11-30 14:19:48 -05:00
halfdan ingvarsson
f43a93906e UHT: Remove suppression of a warning that was required for BP nativization (C4883: function size suppresses optimizations)
#rb tim.smith
#jira none
#rnx

#ROBOMERGE-AUTHOR: halfdan.ingvarsson
#ROBOMERGE-SOURCE: CL 18297391 in //UE5/Release-5.0/... via CL 18297394
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18297400 by halfdan ingvarsson in ue5-release-engine-test branch]
2021-11-25 18:14:45 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
tim smith
74513adf4c Properties that use a TSet with a struct will generate a compile time error if the struct doesn't have a hash value function.
#rb trivial
#jira UE-126918
#preflight 6166b963a8ff590001fc02f4

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17798536 in //UE5/Release-5.0/... via CL 17798538
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v881-17767770)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17798540 by tim smith in ue5-release-engine-test branch]
2021-10-13 07:41:49 -04:00
tim smith
5e96b745c7 Temporary fix to a long standing UHT issue made worse by the concurrency changes. If an intermediate file in an include chain doesn't contain any U definitions, it will be omited by UBT causing UHT to have gaps in the include file graph. This results in some delegates not being able to be found.
#jira UE-127685
#rb none
#rnx
#preflight 615727027b2a620001714c51

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17693354 in //UE5/Release-5.0/... via CL 17693374
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v875-17642767)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17693384 by tim smith in ue5-release-engine-test branch]
2021-10-01 12:38:40 -04:00
andrew davidson
57beb335f2 Merging //UE5/Dev-LargeWorldCoordinates [at] 17581892 to //UE5/Main
#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 17595295 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v871-17566257)

[CL 17595306 by andrew davidson in ue5-release-engine-test branch]
2021-09-22 10:01:48 -04:00
tim smith
c45c30cf84 Fix issue with UHT so it generates errors with duplicate file names again.
#rbx
#rb trivial
#preflight 614084bcbf8a6900011877af

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17503291 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17503332 by tim smith in ue5-release-engine-test branch]
2021-09-14 08:06:51 -04:00
tim smith
a28da68976 Fixing compile issue with generated headers that are sparse
#rb trivial
#rnx

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17491149 via CL 17491166 via CL 17491168 via CL 17491170
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v870-17433530)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17491173 by tim smith in ue5-release-engine-test branch]
2021-09-13 08:59:23 -04:00
tim smith
e8e8ddc6d7 Fixing some UHT code generation issues to reduce obj size.
1) Functions added for LiveCoding have been removed and the data is now just a static.
2) Consolidated defered registration into a single routine.  This includes CppStructOps registration where every routine was over 100 bytes in length.
3) Removed the extra argument in function registration to avoid 7 bytes on windows
4) Fixed a typo in a macro name.

#b none
#rnx

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 17490728 via CL 17490835 via CL 17490836 via CL 17490837
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v870-17433530)
#ROBOMERGE[STARSHIP]: UE5-Main

[CL 17490838 by tim smith in ue5-release-engine-test branch]
2021-09-13 07:47:59 -04:00
tim smith
e198aa3754 Added missing check for internal include directory.
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 17301841 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17301846 by tim smith in ue5-release-engine-test branch]
2021-08-25 09:48:32 -04:00
andrew davidson
ffa1d5ca26 LWC support for FQuat and FTransform
Merge Dev-LargeWorldCoordinates [at] 17289670

#preflight 6125fb6925057900014f2cd6

#ROBOMERGE-SOURCE: CL 17300515 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v861-17282326)

[CL 17300523 by andrew davidson in ue5-release-engine-test branch]
2021-08-25 06:26:44 -04:00
tim smith
6a940d89c4 Added Internal directory support to UHT
#rb none
#rnx

#ROBOMERGE-SOURCE: CL 17034854 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v846-17029325)

[CL 17035677 by tim smith in ue5-release-engine-test branch]
2021-08-03 14:45:37 -04:00
aurel cordonnier
dc4bf61540 Merge from Release-Engine-Staging @ 17030559 to Release-Engine-Test
This represents UE4/Main @ 17030256 and Dev-PerfTest @ 17030553

[CL 17031509 by aurel cordonnier in ue5-release-engine-test branch]
2021-08-03 11:56:47 -04:00
helge mathee
c749d352ce Control Rig: RigVM Property Based storage support for sliced memory
#rb audit
#jira na

#ROBOMERGE-SOURCE: CL 17008022 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17008382 by helge mathee in ue5-release-engine-test branch]
2021-07-30 15:49:56 -04:00
tim smith
c73272280d Remove the usage of CLASS_Parsed and CLASS_CustomConstructor.
#rb none
#rnx
#jira UE-117144
#preflight 6102dbc84cd7930001bd626d

#ROBOMERGE-SOURCE: CL 16998823 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16998829 by tim smith in ue5-release-engine-test branch]
2021-07-29 14:15:35 -04:00
helge mathee
58e0665acc RigVM: Implementing support for new memory storage
All code is still based on the UE_RIGVM_UCLASS_BASED_STORAGE_DISABLED define, which is turned on.
So the feature / changes don't affect anything just yet.

#rb na
[FYI] jack.cai halfdan.ingvarsson
#jira na

#ROBOMERGE-SOURCE: CL 16970759 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16970901 by helge mathee in ue5-release-engine-test branch]
2021-07-27 14:04:39 -04:00
jamie dale
63d9f040fe Allow Cast to gracefully handle an interface instance that's not a UObject
This allows you to test whether a particular interface instance (implemented as a UInterface) has been implemented by a UObject, or whether it's been implemented by a standard C++ type. This is useful if you have an interface that _may_ be implemented by a UObject, but isn't required to be.

#rb Tim.Smith
#preflight 60fb64cd8fe7e0000143f3de

#ROBOMERGE-SOURCE: CL 16954784 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16954797 by jamie dale in ue5-release-engine-test branch]
2021-07-26 07:58:17 -04:00
tim smith
daa6dac524 Replacing the UClass::StaticRegistrationInfo method with a extern function that won't be exported from the DLL if the class is marked as exported.
#rb trivial
#rnx
#preflight 60fc2bc324804700014eda57

#ROBOMERGE-SOURCE: CL 16949953 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
#ROBOMERGE[bot1]: Dev-EngineMerge

[CL 16949956 by tim smith in ue5-release-engine-test branch]
2021-07-24 11:56:31 -04:00
tim smith
e1badfdb32 Removed the UScriptStruct _Hash() method from being marked as an exported API method. Reduces the number of exports.
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 16949693 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)
#ROBOMERGE[bot1]: Dev-EngineMerge

[CL 16949696 by tim smith in ue5-release-engine-test branch]
2021-07-24 10:15:44 -04:00