Commit Graph

92 Commits

Author SHA1 Message Date
steve robb
da9f5a828a Replaced TChooseClass with std::conditional_t.
#rb none
#jira UE-195271

[CL 27816205 by steve robb in ue5-main branch]
2023-09-12 19:55:55 -04:00
louisphilippe seguin
15e7786970 Iris
* Iris creation data will now replicate the true Outer of replicated subobjects.
* Refactored CallWriteNetRefHandleCreationInfo and made CallWriteNetRefHandleDestructionInfo.

#jira UE-127405, FORT-650140, FORT-650133, FORT-650141
#rb Mattias.Hornlund
#rnx

[CL 27798306 by louisphilippe seguin in ue5-main branch]
2023-09-12 13:20:56 -04:00
peter engstrom
ecc9028539 Iris - COND_SkipReplay properties are now treated as having a lifetime condition. Added missing tests for various lifetimeconditions.
#rnx
#rb mattias.hornlund

[CL 27627972 by peter engstrom in ue5-main branch]
2023-09-06 04:19:40 -04:00
peter engstrom
3283d0c1d3 Iris - Allow sending dynamic objects in SoftObjectPtr.
#rb mattias.hornlund

[CL 27408909 by peter engstrom in ue5-main branch]
2023-08-28 08:18:13 -04:00
mattias hornlund
6b55a9269d Iris
- Added friend declaration for inlined subclass to comply with recent compilers.

#rb Peter.Engstrom

[CL 27407575 by mattias hornlund in ue5-main branch]
2023-08-28 05:06:22 -04:00
mattias hornlund
797dde7c6b Iris
- Implemented initial support for being able to skip over data for objects that fail to be instantiated

#rb Peter.Engstrom

[CL 27371360 by mattias hornlund in ue5-main branch]
2023-08-25 05:15:41 -04:00
peter engstrom
827ee7fe12 Iris - Fix EnumNetSerializer issue with enum out of bounds values. Fixed tests to use same config init path as the serializer.
#rb mattias.hornlund

[CL 27371141 by peter engstrom in ue5-main branch]
2023-08-25 04:59:58 -04:00
peter engstrom
19d4cd9085 Do not depend on binaries that do not exist.
#rnx
#rb ryan.gerleve

[CL 27276147 by peter engstrom in ue5-main branch]
2023-08-22 12:53:31 -04:00
peter engstrom
9461712637 Iris - Added missing prioritzation calls in test.
#rb trivial
#rnx

[CL 27029437 by peter engstrom in ue5-main branch]
2023-08-11 11:21:20 -04:00
peter engstrom
f24f343ee6 Iris - SphereNetObjectPrioritizer tests
#rnx
#rb mattias.hornlund

[CL 27027451 by peter engstrom in ue5-main branch]
2023-08-11 10:27:18 -04:00
mattias hornlund
443dcb37d3 Iris 1/2
- Fixed issue with gameplay code holding stale handles to NetObjectGroups after restarting ReplicationSystem due to HotFix.
- Added epoch to NetObjectGroupHandles to be able to detect stale groups

#rb Peter.Engstrom

[CL 27027060 by mattias hornlund in ue5-main branch]
2023-08-11 10:12:29 -04:00
peter engstrom
73988aea51 Iris - Fix out of bounds read in test.
#rnx
#rb mattias.hornlund

[CL 26950135 by peter engstrom in ue5-main branch]
2023-08-09 03:18:28 -04:00
mattias hornlund
c26ea73d8b Iris
- Fixed issue with tearoff of actor with subobject triggering ensure
- Added test recreating the bug
- Added Description string parameter to FReplicationSystemTestNode packet sending methods to facilitate logging of more context when writing tests

#rb LouisPhilippe.Sequin

[CL 26484577 by mattias hornlund in ue5-main branch]
2023-07-20 09:40:06 -04:00
mattias hornlund
b832289865 Fixed issue where FNetBitArray::FindLastZero would return index out of bounds for array sizes not aligned with the size of the storage.
#rb LouisPhilippe.Seguin

[CL 26462362 by mattias hornlund in ue5-main branch]
2023-07-19 11:39:17 -04:00
louisphilippe seguin
a45acac5be Iris
* Poll configs are now set using Frequency (updates per second) instead of frames between polls.
* This allows the poll configs to work with any type of server tick rate
* Added ability to recover a given object's poll frequency via GetPollFrequencyOfRootObject
* ActorReplicationBridge will now listen to changes in server tick rates and reinitalize the poll frame updates of all objects via ReinitPollFrequency()

#jira UE-185786
#rb Peter.Engstorm
#rnx

[CL 25894242 by louisphilippe seguin in ue5-main branch]
2023-06-09 11:12:03 -04:00
louisphilippe seguin
8b3d0a80e5 Iris
* Formalize the concept of ForceNetUpdate by splitting MarkDirty and ForceNetUpdate into seperate lists.
* Now dirty objects will not be forced to be polled immediately anymore. It's only if you call ForceNetUpdate that you can skip your polling frequency.
* Another exeception is when a subobject gets added to a root object. There we are forcing a call to ForceNetUpdate.
* Added code to ensure that only the currently updated object can be marked dirty during the poll phase.

#jira UE-181952
#rb Peter.Engstorm, Mattias.Hornlund
#rnx

[CL 25814811 by louisphilippe seguin in ue5-main branch]
2023-06-06 09:49:57 -04:00
peter engstrom
86abf30e18 Iris - Store FName strings, when required, as they were. To prevent default state checksum mismatch the serialization is a no-op when serializing default state. Equality check will ignore casing.
#preflight 647752964b0d5a1eb13e073f
#rb louisphilippe.seguin

[CL 25702752 by peter engstrom in ue5-main branch]
2023-05-31 11:09:10 -04:00
steve robb
ba1fe48aca Preparation for deprecating the hashing arrays and strings by pointer - now you have to be explicit and call the right function for hashing a pointer, hashing an array contents or hashing a TCHAR* pointer as a null-terminated string.
Added GetArrayHash() for hashing arrays by their contents.
Added a new pair of keyfuncs for TSets and TMaps which allow TCHAR* keys (or TCHAR* values passed to *ByHash functions) to be hashed by FCrc::Strihash_DEPRECATED().

#rb devin.doucette
#preflight 64708e7c296b2b37c6fd894a

[CL 25647216 by steve robb in ue5-main branch]
2023-05-26 12:51:39 -04:00
mattias hornlund
43bb68281b Iris
- Implemented support for capturing object references when using the LastResortNetSerializer

#rb Peter.Engstsrom
#preflight 646decce1417daba1ed2851f

[CL 25635250 by mattias hornlund in ue5-main branch]
2023-05-25 19:33:33 -04:00
louisphilippe seguin
034b274fb1 Added unit test for CombineMultiple and FNetBitArray
#rnx
#rb trivial

[CL 25495772 by louisphilippe seguin in ue5-main branch]
2023-05-16 15:55:20 -04:00
louisphilippe seguin
cfcec3c94d Allow replication of UObjects with UFunctions but no UProperties
#jira UE-185169, UE-43332
#rb Ryan.Gerleve
#rnx

[CL 25495746 by louisphilippe seguin in ue5-main branch]
2023-05-16 15:54:10 -04:00
peter engstrom
bc95260e7b Iris - Use both all ones and all zeros optimization in WriteSparseBitArray.
#rnx
#preflight 6463318a007ade636a8c70e4
#rb mattias.hornlund

[CL 25494919 by peter engstrom in ue5-main branch]
2023-05-16 15:28:07 -04:00
louisphilippe seguin
09f8425107 ReplicationSystemTest
* Added unit test for delaying dirty objects when culled.

#jira UE-184028
#rb Peter.Engstorm
#rnx

[CL 25447831 by louisphilippe seguin in ue5-main branch]
2023-05-12 09:49:39 -04:00
louisphilippe seguin
ef3ab645be Iris
* Enable culling of non-relevant objects from the poll+copy phases.  Controlled via Net.Iris.CullNonRelevant
* Now accumulating dirty flags for dirty objects not cleaned after getting culled.
* DirtyObjectTracker now tracking objects set dirty in the current tick and objects not cleaned in previous frames.
* Now tracking list of CleanedObjects during the frame and only resetting dirty status of the cleaned objects.

#jira UE-184028, UE-181941
#rb Peter.Engstorm, Mattias.Hornlund
#rnx

[CL 25413294 by louisphilippe seguin in ue5-main branch]
2023-05-10 15:07:54 -04:00
peter engstrom
e8183a5f94 Iris - Fixed issue with subobjects fitered out and then allowed to be replicated again. Before they wouldn't replicate unless it or another subobject had dirty state.
#jira UE-184341
#rb mattias.hornlund
#preflight 6459ead6013f37515830271e

[CL 25384191 by peter engstrom in ue5-main branch]
2023-05-09 04:07:28 -04:00