Commit Graph

124 Commits

Author SHA1 Message Date
peter engstrom
43e1614b0d Added ELifetimeCondition COND_Dynamic support. Added unit tests for Iris and functional tests for replication system agnostic testing.
COND_Dynamic allows for a property to decide its actual replication condition after instantiation of the actor/component rather than be the same for all instances. The condition can be changed using the macros DOREPDYNAMICCONDITION_INITCONDITION_FAST, when used in the object's GetReplicatedCustomConditionState implementation, or DOREPDYNAMICCONDITION_SETCONDITION_FAST in any other place where it's appropriate to change the condition. If the condition is never modified, thus remaining COND_Dynamic, the property will always replicate when changed. It's possible to use the DOREPCUSTOMCONDITION_ macros too on properties with this condition.

#jira UE-122444
#preflight 63eb3ca1923476b686190e5a
#rb louisphilippe.seguin, ryan.gerleve, mattias.hornlund, brian.bekich

[CL 24307287 by peter engstrom in ue5-main branch]
2023-02-19 08:39:17 -05:00
mattias hornlund
81471643de FastArraySerializer is no longer allowed to modify state of Archetype or CDO when initializing base state as this lead to inconsistencies with assignment of ReplicationIDs
- Fixed issue with missing detection of items being marked dirty

#rb Peter.Engstrom, LouisPhilippe.Seguin
#preflight 63ecbb14e92f139c51f92523

[CL 24251446 by mattias hornlund in ue5-main branch]
2023-02-16 01:44:20 -05:00
ryan gerleve
dabaa00167 Fix or work around static analysis warnings/false positives in clang 15.
#jira UE-175017
#preflight 63d2f3135d0c0164cc400544
#rb brian.bekich
#lockdown jessica.agee

[CL 23950771 by ryan gerleve in ue5-main branch]
2023-02-01 12:02:55 -05:00
peter engstrom
2378e69c2b Iris - Detect if object becomes dirty during PreReplication
#jira UE-175195
#rb mattias.hornlund
#preflight 63d92c877a39a18021d90329

[CL 23928657 by peter engstrom in ue5-main branch]
2023-01-31 11:39:10 -05:00
steve robb
4900d8a570 Replaced TModels traits class with TModels_V.
#rb devin.doucette
#preflight 63d3aabf5354589b5cd2343b

[CL 23889491 by steve robb in ue5-main branch]
2023-01-27 14:51:16 -05:00
steve robb
6a31618d42 Removed TIsSame from misc. engine files (part of a larger change to deprecate TIsSame).
#rb devin.doucette
#preflight 63c01cac8f4acc7b54d8832d

[CL 23678906 by steve robb in ue5-main branch]
2023-01-13 11:47:02 -05:00
peter engstrom
9eafc8f8d0 Removed incorrect WITH_PUSH_MODEL usage. The functionality is needed regardless of push model.
Fixed typo.

#rb mattias.hornlund
#preflight 63c12d05305002c641d7106d

[CL 23677848 by peter engstrom in ue5-main branch]
2023-01-13 10:47:55 -05:00
henrik karlsson
56431d6609 [CoreUObject/Core]
* Removed CoreMinimal.h include from a ton of headers all the way to Actor.h. This shaved off 15% of the compile time of small files that has uht markup.

#preflight 63b915baaf3ebedd9931496e
#rb none

[CL 23607296 by henrik karlsson in ue5-main branch]
2023-01-07 04:08:49 -05:00
bryan sefcik
b30383a834 Fixed compile issues found after moving module files around in the unity files.
Also added missing generated.h includes.

#jira
#preflight 639bbcb2776b61ba3b35a835

[CL 23535000 by bryan sefcik in ue5-main branch]
2022-12-15 19:56:15 -05:00
louisphilippe seguin
542bc934a2 Replicate SubObjects
* Added the possiblity to store registered subobjects via a WeakObjectPtr or a regular pointer
* Toggled by setting UE_NET_SUBOBJECTLIST_WEAKPTR.
* Default is to use weak pointers
* WeakObjects are useful in a context where some subobjects may get destroyed before getting unregistered which generally occurs on clients and PIE.
* Regular pointers are useful when you want to speed up the replication code and you know all your subobjects will be unregistered before getting destroyed. This is generally the case on dedicated servers.

#rb Brian.Bekich

[CL 23531433 by louisphilippe seguin in ue5-main branch]
2022-12-15 15:58:35 -05:00
Peter Engstrom
664647f4fb Fixed incorrect deprecation version.
#jira none
#rnx
#rb trivial
#preflight 639840f0c16855964d94f64a

[CL 23489511 by Peter Engstrom in ue5-main branch]
2022-12-13 04:27:48 -05:00
Peter Engstrom
92d822713c Iris - Delayed resetting of dirty changemasks until all systems have polled. Global dirty tracking via FReplicationStateHeader.
#review-23286410
#jira UE-169630
#rb mattias.hornlund, ryan.gerleve
#preflight 6388aae4e91f97ef3f743624

[CL 23349561 by Peter Engstrom in ue5-main branch]
2022-12-01 08:36:46 -05:00
mattias hornlund
7c44fea903 Fixed issue with GameplayEffectContext replicating reference to dynamic object that never will be replicated which prevents GameplayEffect from calling Owner->HandleDeferredGameplayCues(this) as bHasMoreUnmappedReferences would always be true.
Engine changes

#rb Peter.Engstrom,Brian.Bekich, Ben.Ziegler, Benjamin.Fox
#preflight 637741a0aa2fe2b05f7c9c97

[CL 23192023 by mattias hornlund in ue5-main branch]
2022-11-18 05:46:31 -05:00
Peter Engstrom
b4ad801e74 Iris - Implemented globally unique NetHandles.
#jira UE-158304
#preflight 637604bebf76990b711695dd
#review-id 22809226
#rb mattias.hornlund, ryan.gerleve

[CL 23174328 by Peter Engstrom in ue5-main branch]
2022-11-17 07:11:09 -05:00
mattias hornlund
04adc5e638 Iris
FastArraySerialzier
- PostReplicatedReceive is now always called after all calls to FastArrayDeltaSerialize on the receiving side

#rb Peter.Engstrom
#preflight 63724ce2953c19d435182d6d

[CL 23119728 by mattias hornlund in ue5-main branch]
2022-11-14 11:48:50 -05:00
mattias hornlund
34c4372a43 Added new parameter OldArraySize to FastArraySerializer::FPostReplicatedReceiveParameters containing the size of the fastarray prior the the last receive operation.
#rb Brian.Bekich
#preflight https://horde.devtools.epicgames.com/job/6371fc315368a3230a36c5c4

[CL 23116049 by mattias hornlund in ue5-main branch]
2022-11-14 06:03:45 -05:00
Zak Middleton
9149ed2129 #ue5 - Truncation fixes for misc engine headers and modules:
- GameplayMediaEncoder
- GameplayTasks

#jira UE-160833
#rb Andrew.Davidson
#preflight 6362aead876630122ab1dead

[CL 22990977 by Zak Middleton in ue5-main branch]
2022-11-04 13:48:41 -04:00
henrik karlsson
fa90b399a4 Added includes for future change. This changelist only contains added #include and a couple of empty placeholder files
Tested compiling fortnite, unrealeditor, lyra, qagame with non-unity/pch

#preflight 63635997876630122adeab9f
#rb none

[CL 22958990 by henrik karlsson in ue5-main branch]
2022-11-03 14:18:47 -04:00
henrik karlsson
cd1466475b Fixed up const/constexpr variables in header files to be "inline"
This is required for c++ modules/header units in order to decide if constexpr/const value should be available to outside module

#preflight 635c0b5c1803be35c767e0ea
#rb none

[CL 22835882 by henrik karlsson in ue5-main branch]
2022-10-28 15:38:42 -04:00
john barrett
356f62ec6e Added stack crashdump helpers for async demo crashes.
#rb Brian.Bekich, LouisPhilippe.Seguin, Johan.Torp, Ryan.Gerleve
#preflight 635a6fee9b2e9c76c7038ade

[CL 22827074 by john barrett in ue5-main branch]
2022-10-28 08:02:41 -04:00
john barrett
3f06ba628c Added optional earlier validation of client URL. Fixed clientside handling of encryption failure customization.
#JIRA FORT-485519, FORT-485545, VLN-2088
#rb Ryan.Gerleve, LouisPhilippe.Seguin
#preflight 6349c341ad0f7e2f20590864

[CL 22705182 by john barrett in ue5-main branch]
2022-10-21 19:51:07 -04:00
bob tellez
f91276cb21 Merging CL#22471087
PushModel
* Fix crash that occurs when setting a property dirty inside BeginDestroy()

FObjectKey
* Added ResolveObjPtrEvenIfUnreachable function to access UObject ptrs flagged for destruction.

#jira UE-164763
#rb Brian.Bekich, Ryan.Gerleve, Steve.Robb

[CL 22490670 by bob tellez in ue5-main branch]
2022-10-12 21:14:22 -04:00
Ryan Gerleve
acc1553813 Changes to allow compiling engine modules with Iris replication code by default, and link against modules/projects that don't depend on Iris.
ModuleRules.SetupIrisSupport defines a new macro to enable or disable the Iris fast array bindings for a module, added UHT support for this. This allows the dependency on the Iris bindings to be compiled out of modules that don't need it and still link with Iris-enabled modules.
Iris plugin disabled by default, should be enabled for specific projects that use it.

#jira UE-160209
#rb mattias.hornlund, peter.engstrom
#preflight 6346fd2cfa31324bb153b63b

[CL 22482725 by Ryan Gerleve in ue5-main branch]
2022-10-12 14:28:30 -04:00
brian bekich
472edd5698 Improvements to tracking/handling of replay/streamer errors
#preflight 6337011ec37844870a1363b4
#rb john.barrett, ryan.gerleve

[CL 22283948 by brian bekich in ue5-main branch]
2022-09-30 19:16:01 -04:00
andrew davidson
970f8f6a18 Non-Engine module public header truncation fixes to reduce noise when compiling with truncation warnings
#jira UE-160823
#rb dave.jones2, zak.middleton
#preflight 6336a3ecc37844870af8b119

[CL 22271698 by andrew davidson in ue5-main branch]
2022-09-30 11:36:06 -04:00