Commit Graph

80 Commits

Author SHA1 Message Date
louisphilippe seguin 235a76b084 NetBitArray:
* Added IsBitSet
* Added CombineMultiple to run bit operations on two const bitarrays in 1 loop
* Added ToString that prints how many set bits the array currently has. Slightly expensive do not abuse with active logs.
* Added FNetBitArrayPrinter utility functions

#rb Peter.Engstorm, Mattias.Hornlund

[CL 25087720 by louisphilippe seguin in ue5-main branch]
2023-04-18 11:48:07 -04:00
peter engstrom b732696462 Iris - TestMessage improvements. Use %hs instead of character conversion when printing ascii strings. Added NetRefHandle support.
#rnx
#rb mattias.hornlund
#preflight 643d03eedb681113a4940ee7

[CL 25066213 by peter engstrom in ue5-main branch]
2023-04-17 07:30:21 -04:00
peter engstrom c412a8ce47 Iris - Huge object going out and in to scope now correctly end up flushing state.
#preflight 6437b4104c0cdaea09945083
#rb mattias.hornlund

[CL 25022272 by peter engstrom in ue5-main branch]
2023-04-13 05:46:42 -04:00
louisphilippe seguin 285c45c6df Iris Filter UnitTest:
* Split Mock filter into a seperate class when it needs to read fragment data of an object

#rb Peter.Engstorm

[CL 25018286 by louisphilippe seguin in ue5-main branch]
2023-04-12 19:03:40 -04:00
peter engstrom ee293a8abc Iris - Implemented FNetBitArrayConstRangeIterator. Can only be used in range-based for loops.
#jira UE-182125
#preflight 642ea5232546b26a38a4c422
#rb mattias.hornlund

[CL 24956618 by peter engstrom in ue5-main branch]
2023-04-06 16:58:18 -04:00
peter engstrom 4260085021 Iris - Offset poll frame when adding new objects to a specific interval to spread them out across frames, leading to more stable CPU times for polling.
Note that there's no rebalancing code so as objects get out of scope and new objects are created an inbalance may occur eventually.

#preflight 642d42fdda7f958370c7567b
#rnx
#rb mattias.hornlund

[CL 24926362 by peter engstrom in ue5-main branch]
2023-04-05 08:50:34 -04:00
peter engstrom b4ab22fbc1 Remove log spam. Use more appropriate UE_NET_LOG in test.
#rnx
#preflight none
#rb mattias.hornlund

[CL 24780588 by peter engstrom in ue5-main branch]
2023-03-24 12:04:30 -04:00
Peter Engstrom 66c9f0245e Suppress log error when testing WritePackedVector.
#rnx
#jira none
#preflight none
#rb brian.bekich
#preflight 6419b6b8e64b9d14c540534f

[CL 24731526 by Peter Engstrom in ue5-main branch]
2023-03-21 10:02:25 -04:00
Brian Bekich c962e8f6fc FNetworkGUID now supports uint64 values
#jira UE-93777
#preflight 6411f2f5352bd6a889f950a5
#rb peter.engstrom

[CL 24689288 by Brian Bekich in ue5-main branch]
2023-03-17 10:41:53 -04:00
peter engstrom bd872e737d Iris - Struct derived from struct with custom NetSerializer is no longer required to implement a NetSerializer.
#preflight 64119fc25819afacaff62277
#jira UE-179181
#rb mattias.hornlund

[CL 24654044 by peter engstrom in ue5-main branch]
2023-03-15 10:16:55 -04:00
peter engstrom 2a592c1ab5 Use std::numeric_limits
#rnx
#preflight 641079530e1f02786b4a00bc
#rb ryan.gerleve

[CL 24636857 by peter engstrom in ue5-main branch]
2023-03-14 11:41:56 -04:00
ryan gerleve e990a0b7af Re-enable LastResortPropertyNetSerializer tests on non-Windows platforms since they're passing now.
#jira UE-166991
#rb peter.engstrom

[CL 24577511 by ryan gerleve in ue5-main branch]
2023-03-09 12:02:30 -05:00
peter engstrom 6753dbebdb Iris - Packed 64-bit integer serialization support.
#jira UE-179180
#rb mattias.hornlund
#preflight 6405ef2bde14c9e34b688b3a

[CL 24522642 by peter engstrom in ue5-main branch]
2023-03-06 10:29:57 -05:00
ryan gerleve 606f5545df Fix or suppress some warnings and errors in ReplicationSystemTestPlugin.
#jira UE-178241
#rb mattias.hornlund

[CL 24404830 by ryan gerleve in ue5-main branch]
2023-02-24 13:42:48 -05:00
louisphilippe seguin 75e3dfc0f5 Fix ensures about fragmentless netobjects in ReplicationSystemTests
#rb Ryan.Gerleve

[CL 24386316 by louisphilippe seguin in ue5-main branch]
2023-02-23 14:32:38 -05:00
ryan gerleve d66296401e Fix some macros in ReplicationSystemTestPlugin.
#jira UE-166991
#rb peter.engstrom

[CL 24368918 by ryan gerleve in ue5-main branch]
2023-02-22 16:05:27 -05:00
louisphilippe seguin 45406ec8aa Iris
* Removed calls to empty Super::RegisterReplicationFragments in base classes
* This amounted to a dangerous pattern where users expect the Super call chain to be respected by all classes.
* But in fact the call chain should stop at the first call to CreateAndRegisterFragmentsForObject.
* If another class overrides and calls CreateAndRegisterFragmentsForObject itself, it should never call the Super.

#jira UE-175033
#rb Jon.Fairchild

[CL 24344194 by louisphilippe seguin in ue5-main branch]
2023-02-21 13:27:03 -05:00
Ryan Gerleve 5ad3ab4ab3 Fix some include paths in ReplicationSystemTestPlugin.
#jira none
#rb LouisPhilippe.Seguin
#preflight 63f4eca27064074bd8298c2f

[CL 24340776 by Ryan Gerleve in ue5-main branch]
2023-02-21 11:20:22 -05:00
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
christopher waters 73c74eaf42 Removing redundant include paths:
- PublicIncludePaths.Add(ModuleDirectory + "/Public");
- PrivateIncludePaths.Add("<module name>/Private");

#preflight 63ef03623c1eb56f057db7de

[CL 24285283 by christopher waters in ue5-main branch]
2023-02-17 12:45:29 -05:00
ryan gerleve f53af902f2 Fix missing macro errors in ReplicationSystemTestPlugin, use a custom macro to indicate whether it's building with low level tests.
#jira UE-166991
#rb none
#preflight skip
[FYI] peter.engstrom
#rnx

[CL 24200198 by ryan gerleve in ue5-main branch]
2023-02-13 21:22:03 -05:00
ryan gerleve 77e3a73de8 Make the tests in ReplicationSystemTestPlugin compatible with the LowLevelTests framework.
Original ReplicationSystemTest program using the automation framework still works too.

#jira UE-166991
#preflight 63ea833dec50523134e8aee1
#rb peter.engstrom

[CL 24197467 by ryan gerleve in ue5-main branch]
2023-02-13 20:09:19 -05:00
ryan gerleve 5b45ec5b54 Add missing enum underlying type.
#rb trivial
[FYI] peter.engstrom, mattias.hornlund

[CL 24197393 by ryan gerleve in ue5-main branch]
2023-02-13 20:07:43 -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
peter engstrom d0806c1a43 Iris - Don't destroy subobjects that we didn't new and actors we're not allowed to.
This fixes various crashes related to deleting default subobjects and such.

#jira UE-174664
#rb mattias.hornlund
#preflight 63cfeb52d83c1837b1974232

[CL 23831933 by peter engstrom in ue5-main branch]
2023-01-24 11:24:58 -05:00