View Issue Details

IDProjectCategoryView StatusLast Update
0003277NoesisGUIUnitypublic2024-06-10 19:13
Reportersamc Assigned Tosfernandez  
PrioritynormalSeveritymajor 
Status resolvedResolutionfixed 
Product Version3.2.3 
Target Version3.2.4Fixed in Version3.2.4 
Summary0003277: Icons jittering in our map/minimap in 3.2.3 upgrade branch
Description

We're very close to having our 3.2.3 upgrade ready. One last issue we noticed is that we're seeing icons on our map and minimap jitter. I'm not sure exactly what is causing this; this was working fine in 3.2.2.

I can definitely investigate this more on my own, but was wondering if you had any ideas / thoughts on what might be causing this -- or even areas that I should probably look at first to help debug an diagnose this issue.

You can see the videos of gameplay here in google drive: https://drive.google.com/drive/folders/1nVKe6rPz_OIHE1_T8XgQuu-GdqVRnorM?usp=sharing

Steps To Reproduce

Join game
Watch icons on minimap
OR
open big map
watch your player icon jitter

PlatformWindows

Activities

sfernandez

sfernandez

2024-04-25 11:13

manager   ~0009417

Hi Sam, which xamls and templates are in charge of rendering the full map and the mini map, I want to take a look at the layout construction to see if I can figure out what is causing that jitter.

samc

samc

2024-04-25 23:56

reporter   ~0009418

Big in-game map (hold TAB button I believe) is all in MapView.xaml

Minimap (little radar in the corner) is in MiniMapView.xaml

All the templates are in MapTemplates.xaml

In order to update all of these, we are binding the RenderTransform of a Canvas to a transform we compute int he data model.

samc

samc

2024-04-30 02:17

reporter   ~0009433

We're not sure if this happens on PS5 because it seems to only happen if our frame rate exceeds 60fps.

Perhaps this is something in our rendering pipeline (PC is definitely running over 60fps and it doesn't happen there though).

samc

samc

2024-04-30 02:17

reporter   ~0009434

Oops, ignore that comment. commented on the wrong bug lol

samc

samc

2024-05-01 20:11

reporter   ~0009448

Just wanted to checkin here - realize y'all are probably quite busy. Is there anything I could do to help track down this bug? We'd love to get on 3.2.3. If you can direct me of just "check this" I can certainly do that and report results.

sfernandez

sfernandez

2024-05-02 22:04

manager   ~0009456

I'm looking into this but can't reproduce it in my tests with the Square scenario.
Is this happening only on some specific conditions?

If I have to use the game Frontend scene I would need some login credentials to test it, right?, could you please provide that?

Also, I see all text labels without localization solved, is there anything I should configure to see the correct texts?

samc

samc

2024-05-03 00:11

reporter   ~0009457

It happens for me when I play in editor in Square level. You shouldn't need to use the front end level so you shouldn't need login credentials (I can get you credentials if you would still like to test that scenario).

Also, when you play in editor, I'm wondering if it's detecting your current locale and not using english -- that's my guess as to why the localization may not be working. I'll see if I can find a workaround for you.

I'm changing my "game" resolution (this is in the editor resolution drop down) to "Full HD (1920x1080)" - not sure if that makes a difference?

samc

samc

2024-05-03 00:19

reporter   ~0009458

I find that i can reproduce this most easily on the minimap in square. You don't even have to move the character; if you just rotate the camera and look at the other icons on the screen you'll see that they are jittering around. I'll attach a couple videos here comparing 3.2.3 with 3.2.2.

samc

samc

2024-05-03 00:28

reporter   ~0009459

Here is a video of the editor displaying the jitter issue: https://drive.google.com/file/d/1e_AJRivr7tV0HsYSHibd97A4MXlzaeFA/view?usp=drive_link

Here is a video of the editor on 3.2.2 showing same test:
https://drive.google.com/file/d/1xYBQtk8sAw1tQ1RSmSYJ5rp2l7zTQtKI/view?usp=drive_link

sfernandez

sfernandez

2024-05-03 16:24

manager   ~0009463

Thanks for the info, I was able to reproduce it and fix it, can you please try the attached patch?

IconJittering.patch (1,638 bytes)   
Index: RenderTreeHelper.cpp
===================================================================
--- RenderTreeHelper.cpp	(revision 13848)
+++ RenderTreeHelper.cpp	(working copy)
@@ -472,9 +472,12 @@
     bounds.Transform(Transform2::Scale(scale.x, scale.y));
 
     // Subpixel positioning, so offscreen rectangle is rendered in integer position
-    offset.x = transform[2][0] - (float)(int)transform[2][0];
-    offset.y = transform[2][1] - (float)(int)transform[2][1];
-    bounds.Offset(offset);
+    if (!IsRotating(transform))
+    {
+        offset.x = transform[2][0] - (float)(int)transform[2][0];
+        offset.y = transform[2][1] - (float)(int)transform[2][1];
+        bounds.Offset(offset);
+    }
 
     return ToRecti(bounds);
 }
Index: RenderTreeHelperDraw.cpp
===================================================================
--- RenderTreeHelperDraw.cpp	(revision 13848)
+++ RenderTreeHelperDraw.cpp	(working copy)
@@ -99,9 +99,14 @@
         offsetY = (float)borderb;
     }
 
-    float subX = transform[2][0] - (float)(int)transform[2][0];
-    float subY = transform[2][1] - (float)(int)transform[2][1];
-    if (mIsOffscreen && !IsZero(subY)) subY -= 1.0f;
+    float subX = 0.0f;
+    float subY = 0.0f;
+    if (!IsRotating(transform))
+    {
+        subX = transform[2][0] - (float)(int)transform[2][0];
+        subY = transform[2][1] - (float)(int)transform[2][1];
+        if (mIsOffscreen && !IsZero(subY)) subY -= 1.0f;
+    }
 
     Transform2 imageMtx = PostTrans(transform, -subX, -subY);
     imageMtx = PreScale(1.0f / scale.x, 1.0f / scale.y, imageMtx);
IconJittering.patch (1,638 bytes)   
samc

samc

2024-05-03 19:24

reporter   ~0009464

This fixes it! thanks!

sfernandez

sfernandez

2024-05-06 11:43

manager   ~0009467

Great! Thanks for the confirmation.

samc

samc

2024-05-06 22:50

reporter   ~0009475

Sorry to reopen - but our QA did a much more involved test and it seems like this is still happening in some instances. You can see it in this video here:

https://drive.google.com/file/d/1Uq7mjmgYKcG3BezMNkSBUhQCbdFzEmYt/view?usp=drive_link

I'll hop on the branch and attempt to reproduce in editor to make sure it's not just something in the player.

samc

samc

2024-05-07 00:17

reporter   ~0009476

Was able to play around with this some more. It's much harder to reproduce now, but the repro is still 100%. Here's a video of it happening in editor:

https://drive.google.com/file/d/1lMZcgdrl3BRgxivA8Hrb6NIWdvDTOoyn/view?usp=drive_link

Essentially, if you are running forward (using 'D') button on keyboard, everything looks great.

If you press the 'S' key to run backwards, the icon starts jittering. This was happening in editor on square level as well as in player.

Any ideas?

samc

samc

2024-05-15 00:37

reporter   ~0009528

I did a couple experiments here trying to tweak some of that sub-pixel accuracy code but wasn't able to eliminate the jitter. Any ideas here on what else we could try?

samc

samc

2024-05-15 01:33

reporter   ~0009529

I kept messing around a bit here. If I completely remove the sub-pixel accuracy code from those two methods, everything seems to work properly.. but it doesn't feel like the "right" fix.

Suggestions?

sfernandez

sfernandez

2024-05-15 10:32

manager   ~0009530

We are trying to find the correct approach for that code, because current implementation and the fix I provided doesn't seem to behave well in all scenarios.
I hope we can have this properly solved very soon.

sfernandez

sfernandez

2024-06-10 19:13

manager   ~0009684

Fixed in changeset 14069

Issue History

Date Modified Username Field Change
2024-04-24 23:37 samc New Issue
2024-04-24 23:37 samc Tag Attached: C#
2024-04-24 23:37 samc Tag Attached: Unity
2024-04-25 11:13 sfernandez Assigned To => sfernandez
2024-04-25 11:13 sfernandez Status new => feedback
2024-04-25 11:13 sfernandez Note Added: 0009417
2024-04-25 11:48 jsantos Target Version => 3.2.4
2024-04-25 23:56 samc Note Added: 0009418
2024-04-25 23:56 samc Status feedback => assigned
2024-04-30 02:17 samc Note Added: 0009433
2024-04-30 02:17 samc Note Added: 0009434
2024-05-01 20:11 samc Note Added: 0009448
2024-05-02 22:04 sfernandez Status assigned => feedback
2024-05-02 22:04 sfernandez Note Added: 0009456
2024-05-03 00:11 samc Note Added: 0009457
2024-05-03 00:11 samc Status feedback => assigned
2024-05-03 00:19 samc Note Added: 0009458
2024-05-03 00:28 samc Note Added: 0009459
2024-05-03 16:24 sfernandez Note Added: 0009463
2024-05-03 16:24 sfernandez File Added: IconJittering.patch
2024-05-03 16:25 sfernandez Status assigned => feedback
2024-05-03 19:24 samc Note Added: 0009464
2024-05-03 19:24 samc Status feedback => assigned
2024-05-06 11:43 sfernandez Status assigned => resolved
2024-05-06 11:43 sfernandez Resolution open => fixed
2024-05-06 11:43 sfernandez Fixed in Version => 3.2.4
2024-05-06 11:43 sfernandez Note Added: 0009467
2024-05-06 22:50 samc Status resolved => feedback
2024-05-06 22:50 samc Resolution fixed => reopened
2024-05-06 22:50 samc Note Added: 0009475
2024-05-07 00:17 samc Note Added: 0009476
2024-05-07 00:17 samc Status feedback => assigned
2024-05-15 00:37 samc Note Added: 0009528
2024-05-15 01:33 samc Note Added: 0009529
2024-05-15 10:32 sfernandez Note Added: 0009530
2024-06-10 19:13 sfernandez Status assigned => resolved
2024-06-10 19:13 sfernandez Resolution reopened => fixed
2024-06-10 19:13 sfernandez Note Added: 0009684
2025-10-10 13:29 jsantos Category Unity3D => Unity