Commit Graph

124 Commits

Author SHA1 Message Date
mattias hornlund
0b34acda8a Fixed lowleveltest failing when testing an expected failure.
#rb Peter.Engstrom

[CL 36760649 by mattias hornlund in 5.5 branch]
2024-10-01 19:58:46 -04:00
peter engstrom
0ef26db48d Iris - Fixed issue with owner and connection filtered objects and late joining clients.
#jira UE-225367
#rb LouisPhilippe.Seguin

[CL 36760574 by peter engstrom in 5.5 branch]
2024-10-01 19:58:03 -04:00
peter engstrom
ec227a3627 NetCore - Implemented FConnectionHandle which carry both parent connection and child connection information. This can be usefule for APIs where it's important to keep track of child connections as well.
#rb LouisPhilippe.Seguin, carles.fernandez

[CL 36750206 by peter engstrom in 5.5 branch]
2024-10-01 18:11:38 -04:00
louisphilippe seguin
5fe2ef2b41 Iris
* Added PostInit callback to UNetObjectFactory
* Moved PostInit code from bridges to their respective factory

#rnx
#rb Mattias.Hornlund

[CL 36390399 by louisphilippe seguin in 5.5 branch]
2024-09-18 10:30:30 -04:00
mattias hornlund
070fd10e45 Iris
- Fixed bad init code for ReplicationSystemTest

#rb Peter.Engstrom

[CL 36381471 by mattias hornlund in 5.5 branch]
2024-09-18 04:45:56 -04:00
mattias hornlund
93d29af692 Iris/Networking
- Enabled use of NetTokens/NetTokenStore and NetTokenDataStores outside of Iris to facilitate exporting data from shared serialization paths
- NetTokenStore and NetTokenDataStores are now owned by NetDriver.
- Added support for CustomExport bunches to carry data assoiciated with NetTokenExports

GameplayTags
- GameplayTagNetSerializer now respects settings from GameplayTags.ini
- Implemented placeholder GameplayTagNetTokenDataStore.

GameplayTags are now using NetTokens to export data if running in the new dynamic mode.

#rb jodon.karlik, Ryan.Gerleve

[CL 36380672 by mattias hornlund in 5.5 branch]
2024-09-18 04:10:29 -04:00
peter engstrom
4a9e2953d7 Iris - Fixed off by one error in FReplicationSystemTestNode::ConvertPollPeriodIntoFrequency
#rnx
#rb peter.engstrom
[FYI] bradley.heath

[CL 36327947 by peter engstrom in 5.5 branch]
2024-09-17 03:40:58 -04:00
louisphilippe seguin
149844147d Iris:
* Added NetObjectFactory API
* Users can now create their own net object factories to handle discovery and instantiation of any replicated object types.
* An exemple of using this factory is to create your own replicated root objects that are not derived from the Actor class.

Iris ActorBridge:
* Created new Actor and SubObject net object factories.
* Deleted existing code handling discovery and instantiation of actors from the Bridge

ReplicationSystemTest:
* Converted Test bridge to use the new net object factory API

#jira UE-223565
#rb Mattias.Hornlund

[CL 36240214 by louisphilippe seguin in 5.5 branch]
2024-09-12 15:23:12 -04:00
louisphilippe seguin
1985e68256 Iris
* Fix bitarrayview issue when the NetRefHandleManager max internal index grows during the PreUpdate phase.
* Moved PreUpdate call from poller struct to the ObjectBridge directly.

#jira UE-222370
#rnx
#rb Peter.Engstrom

[CL 36194786 by louisphilippe seguin in 5.5 branch]
2024-09-11 10:55:28 -04:00
louisphilippe seguin
aa93a84507 Iris
* Demystify BeginReplication functions in the bridges by renaming them to what type of replicated object they create.
* Renamed FCreateNetRefHandleParams to FRootObjectReplicationParams.
* Removed FCreateNetRefHandleParams from SubObject BeginReplication function. All of the params could only be set on Root Objects.

#rb Mattias.Hornlund

[CL 35824786 by louisphilippe seguin in ue5-main branch]
2024-08-27 10:29:26 -04:00
mattias hornlund
8c0eaa3e29 Iris
- NetTokens now has a concept of authority and can override local exported tokens with token received from authority so that will be used instead.
- Removed IsLocal from FNameAsNetTokenNetSerializer as it is no longer needed
- Cleaned up how we access type specific NetTokenDataStores as a step towards exposing NetTokens for use outside of iris.
- Refactored LastResortNetSerializer  and CharacterNetworkSerializationMovemenPackedBitsNetSerializer to support capturing and exporting FNames and NetTokens in addition to ObjectReferences.
    - Can be disabled with "net.iris.EnableIrisPackageMapNameExports 0"

#jira UE-221753
#rb Peter.Engstrom

[CL 35797849 by mattias hornlund in ue5-main branch]
2024-08-26 10:14:00 -04:00
mattias hornlund
ec2fd9a9d5 Iris
- Refactored NetTokens a bit to allow export of data associated with NetTokens during serialization to be able to support exporting arbitrary data.
- Now passes full context when quantizing default state for future support of assymetric quantization.
- Support capturing NetToken exports when preserializing NetBlobs/RPCs

#rb Peter.Engstrom

[CL 35560630 by mattias hornlund in ue5-main branch]
2024-08-15 08:37:34 -04:00
louisphilippe seguin
8ff5c0479e Iris
* Deleted use of static DefaultCreateNetRefHandleParams. The FCreateNetRefHandleParams default parameter values should be used instead.
* Deleted bCanReceive param from FCreateNetRefHandleParams. This was only used by some unit tests.
* Removed unused cache option param in InternalFlushStateData
* Misc API cleanup

#rnx

#rb Peter.Engstrom

[CL 35454663 by louisphilippe seguin in ue5-main branch]
2024-08-12 11:53:50 -04:00
louisphilippe seguin
10778c5ead Iris
* Fix dormant objects still getting replicated when one of their push model property was dirty.
* Now caching NetFlush request of dormant objects instead of simply setting them dirty.
* Dormant objects will now be NetFlushed when an RPC is called on them.  This makes Iris behave the same as generic replication.
* Added cvars to modify these behaviors: net.Iris.RPC.AllowOnDormantObjects (default true), net.Iris.RPC.AutoNetFlushOnDormantObjects (default true)

#jira UE-219859
#rb Mattias.Hornlund

[CL 35306430 by louisphilippe seguin in ue5-main branch]
2024-08-05 10:05:09 -04:00
louisphilippe seguin
c970144aed Iris
* Fix dormant objects getting replicated if one of their push model property was set dirty or force net update was called on them.
* Added dormancy iris unit test

#jira UE-219859
#rnx
#rb Peter.Engstrom

[CL 35032278 by louisphilippe seguin in ue5-main branch]
2024-07-23 16:27:37 -04:00
peter engstrom
51b5988e5f Iris - Perform all delta compression baseline invalidation based on conditional changes in FReplicationConditionals. Invalidate baselines for the entire object hierarchy if a condition change are affecting properties in subobjects too.
#rb bradley.heath

[CL 34749765 by peter engstrom in ue5-main branch]
2024-06-28 16:58:06 -04:00
louisphilippe seguin
a1f33f67ee Iris
* NetGroupHandles are now unique and cannot reference a future unrelated group once the group it referenced has been destroyed.

#jira UE-207640

[CL 34420714 by louisphilippe seguin in ue5-main branch]
2024-06-17 10:24:22 -04:00
mattias hornlund
84cc918620 Iris
- FReplicationWriter::UpdateDirtyGlobalLifetimeConditionals now marks subobject owner dirty - now fixed to not cause bad state transitons
- Added test for previouse bad case.
- Changed checks to ensures to avoid taking down server

#rb Peter.Engstrom

[CL 34420568 by mattias hornlund in ue5-main branch]
2024-06-17 10:23:27 -04:00
peter engstrom
3b170dc9ba Iris - Fixed bug with object scope hysteresis kicking in for newly added objects. Fixed bug with NetRefHandleIndex growing caused some filtering information to be reset.
#rb bradley.heath, matt.harris

[CL 34372137 by peter engstrom in ue5-main branch]
2024-06-14 11:11:21 -04:00
louisphilippe seguin
6f68a6d233 Iris
* CreateGroup public API now requires an FName
* Passing NAME_None will let Iris autogenerate an unique name to the group (not recommended)
* Ensure and don't create a group if a valid name was passed but it's not unique
* Improve LogIrisFiltering verbose logs to output group names

#jira UE-207640
#rb Peter.Engstrom

[CL 34321357 by louisphilippe seguin in ue5-main branch]
2024-06-12 16:19:04 -04:00
peter engstrom
fe9b367419 Iris - NetObjectCountLimiter test for Fill mode.
#rnx
#rb mattias.hornlund

[CL 34277669 by peter engstrom in ue5-main branch]
2024-06-11 11:07:23 -04:00
louisphilippe seguin
99652954c1 Iris
* Added ConsumeNetMetrics to ActorReplicationBridge.
* It can be used to collect internal Iris metrics and send them to an AnalyticsProvider

#rnx
#rb Mattias.Hornlund

[CL 34205110 by louisphilippe seguin in ue5-main branch]
2024-06-07 11:54:05 -04:00
peter engstrom
d25141ac13 Iris - FieldOfViewNetObjectPrioritizer and tests.
The prioritizer consists of an inner sphere, outer sphere, a cone and a line of sight. Radii, field of view for cone, line of sight width and priorities are all configurable. Priorities cover the shape they're configured for except for the cone where the priority is linearly interpolated from the inner cone length to the full cone length. A 2D greyscale image is produced to memory by the VisualizeFieldOfViewNetObjectPrioritizer test.

#jira UE-216561
#rb Mattias.Hornlund

[CL 34123123 by peter engstrom in ue5-main branch]
2024-06-05 09:47:12 -04:00
peter engstrom
c2c456912e Iris - Minor test framework improvements.
#rnx
#rb bradley.heath

[CL 34087828 by peter engstrom in ue5-main branch]
2024-06-04 03:39:03 -04:00
mattias hornlund
4f42ed9651 iris
- Fixed issue with Torned-off objects being destroyed while waiting for initial acknowledgement.

#rb Peter.Engstrom
[REVIEW] https://p4-swarm.epicgames.net/reviews/33968061

[CL 33984539 by mattias hornlund in ue5-main branch]
2024-05-29 15:53:36 -04:00