You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: NetworkTransform full precision state updates being lost when interpolating [MTT-6799] (#2624)
* fix
This fixes the issue where full precision transform synchronization was losing state while interpolating.
* update
initial change log entry
* update
Adding PR number to change log entry
* fix
Missed including half float precision scale with interpolation enabled since scale only updates the axis that changed (i.e. a target axis value could get stomped otherwise when half precision was enabled...the coming test discovered this).
* test
Modified NetworkTransformMultipleChangesOverTime to use interpolation when 3 axis are being tested as well as added the additional logic required to catch the issue not caught by this test where a state update could stomp a single axial value if the target value had not yet been reached.
Assert.True(WaitForConditionOrTimeOutWithTimeTravel(()=>m_AuthoritativeTransform.StatePushed&&m_NonAuthoritativeTransform.StateUpdated),$"[Non-Interpolate {i}] Timed out waiting for state to be pushed ({m_AuthoritativeTransform.StatePushed}) or state to be updated ({m_NonAuthoritativeTransform.StateUpdated})!");
672
740
673
-
// Wait for deltas to synchronize on non-authoritative side
Assert.True(success,$"[Interpolation Enable] Timed out waiting for state to be pushed ({m_AuthoritativeTransform.StatePushed}) or state to be updated ({m_NonAuthoritativeTransform.StateUpdated})!");
695
-
696
-
// Continue for one more update with interpolation enabled
697
-
// Note: We are just verifying one update with interpolation enabled due to the number of tests this integration test has to run
698
-
// and since the NestedNetworkTransformTests already tests interpolation under the same number of conditions (excluding Axis).
699
-
// This is just to verify selecting specific axis doesn't cause issues when interpolating as well.
Assert.True(success,$"[Interpolation {k_PositionRotationScaleIterations}] Timed out waiting for state to be pushed ({m_AuthoritativeTransform.StatePushed}) or state to be updated ({m_NonAuthoritativeTransform.StateUpdated})!");
// Provide additional debug info about what failed (if it fails)
714
765
if(!success)
715
766
{
716
767
m_EnableVerboseDebug=true;
717
-
PositionRotationScaleMatches();
768
+
success=PositionRotationScaleMatches();
718
769
m_EnableVerboseDebug=false;
719
770
}
720
-
Assert.True(success,$"[Interpolation {k_PositionRotationScaleIterations}] Timed out waiting for non-authority to match authority's position or rotation");
771
+
Assert.True(success,$"Timed out waiting for non-authority to match authority's position or rotation");
0 commit comments