SOLVED

DPI scaling bug

Iron Contributor

I have been using Microsoft Edge Canary since the first build on my PC with FullHD screen and 125% system scale factor, and during this time there is present annoying DPI scaling bug, which then moved to Chromium-based browsers too. I could "fix" it by enabling "Enable pixel canvas recording" flag, but it was disappeared in Edge (and Chrome) 79.

The problem is the twitching user interface. When you hover buttons, e.g. home button, it moves a few pixels up, and when I remove cursor from it, it returning on the previous position, moving a few pixels down. It also spreads on connection and profile menus, sometimes on downloads panel.

I have attached a video demonstrating the bug.

8 Replies
best response confirmed by msekmfb1 (Iron Contributor)
Solution
I think they decided to give up Pixel Canvas Recording (there was some issues with it), but they said Pixel Canvas Recording was always only intended to be a mid term solution until pixel coordinate conversions was ready. From the Doc:

"There are more devices that requires fractional scale factors. ChromeOS tablet will need a touchable friendly UI. Allowing more flexible scale factors, then optimize UI for touch where necessary would allow us to continue improve UI for both clamshell and touch form factors. However, current implementation has a lot of issue with these scale factors. (see pkasting@’s doc for the issue).

This can be solved by using pixel coordinates, but it may
take time: Both application code as well as underlying framework has to be changed to use pixel coordinates and/or DIP library.
require more maintenance code as application code is required to do the right thing about scaling.

The reason why views are not aligned with fractional scale factor is that views does not have pixel information, and the way DIP is converted to pixel can also lead to a gap. This document describes an alternative approach to address these issues by providing pixel size so that views can layout views components at pixel boundaries using point based conversion. This is also a good mid term solution until pixel coordinate conversions is ready."
Also, Vivaldi doesn't have any of these issues (as far as I can tell). My laptop is at 175% display scaling too, and still no issues. Maybe use Vivaldi until Google/Microsoft get this all sorted out (Firefox does have some issues with fractional scale factors but not as many as Chrome and Edge)
Watching that video, to me it looks like the elements hovered over go in and then come out when mouse cursor is not on them

@HotCakeX

It's exactly that I said

@Bdsrev
Where is this doc from?

Yup

@Bdsrev 

Thank you very much

1 best response

Accepted Solutions
best response confirmed by msekmfb1 (Iron Contributor)
Solution
I think they decided to give up Pixel Canvas Recording (there was some issues with it), but they said Pixel Canvas Recording was always only intended to be a mid term solution until pixel coordinate conversions was ready. From the Doc:

"There are more devices that requires fractional scale factors. ChromeOS tablet will need a touchable friendly UI. Allowing more flexible scale factors, then optimize UI for touch where necessary would allow us to continue improve UI for both clamshell and touch form factors. However, current implementation has a lot of issue with these scale factors. (see pkasting@’s doc for the issue).

This can be solved by using pixel coordinates, but it may
take time: Both application code as well as underlying framework has to be changed to use pixel coordinates and/or DIP library.
require more maintenance code as application code is required to do the right thing about scaling.

The reason why views are not aligned with fractional scale factor is that views does not have pixel information, and the way DIP is converted to pixel can also lead to a gap. This document describes an alternative approach to address these issues by providing pixel size so that views can layout views components at pixel boundaries using point based conversion. This is also a good mid term solution until pixel coordinate conversions is ready."

View solution in original post