- Added support for sending attachments flagged as SendImmediate from PostDispatchTick
#jira UE-122456
#rb Peter.Engstrom
[CL 28318795 by mattias hornlund in ue5-main branch]
The max number of huge objects in transit is controlled via the cvar net.Iris.ReplicationWriterMaxHugeObjectsInTransit, defaulting to 16, but will be at least one. There's a tradeoff mainly between the connection characteristics to support and normal object replication scheduling when tweaking this value. On one hand you don't want to end up stalling object replication because the top priority objects are huge. So you want to be able to keep replicating huge objects during the maximum latency, including latency variation, and packet loss scenarios you want to provide the best experience possible for. On the other hand object deletion cannot be performed once the object is in the huge object queue. Consider this and how long time it will take to replicate the huge object queue depending on the average payload of a huge object.
#jira UE-123370
#rb mattias.hornlund
[CL 28283681 by peter engstrom in ue5-main branch]
-Added CVar to allow for additonal data packets to be written by ReplicationWriter as long as bandwidth settings are respected
#rb Peter.Engstrom
[CL 28136556 by mattias hornlund in ue5-main branch]
* Split scope bitarray into GlobalScopeList and ScopeFrameData
* The GlobalScopeList is always up to date and should mostly be used outside the NetTickFlush update
* ScopeFrameData is synced at the start of NetTickFlush and valid until the end of the SendUpdate().
* The lists contained in ScopeFrameData are now protected from illegal access outside of NetTickFlush
* Added ensures that prevents creating new replicated root object during the SendUpdate operations.
* Added ensures that prevent changing filter conditions during the SendUpdate operations.
* Added support for replication of subobjects created inside a PreReplication callback.
#jira UE-195717
#rb Mattias.Hornlund, Peter.Engstrom
#rnx
[CL 28100078 by louisphilippe seguin in ue5-main branch]
* Move PreUpdate into its own loop and call it on all polling objects.
* Properly manage objects that set dirtyness on other objects inside PreUpdate/PreReplication
* Now objects that get set dirty inside PreReplication but are not set to be polled will still be set dirty on the next frame.
* Deleted code that tested if such dependencies existed
#jira UE-192518, FORT-639953
#rb Peter.Engstrom
#rnx
[CL 27955686 by louisphilippe seguin in ue5-main branch]
* 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]
- Added friend declaration for inlined subclass to comply with recent compilers.
#rb Peter.Engstrom
[CL 27407575 by mattias hornlund in ue5-main branch]
- 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]
- 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]
- 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]
* 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]
* 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]
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]