New issue
Advanced search Search tips

Issue 845987 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression



Sign in to add a comment

FHD devices with 1.25 device scale factor does not retain display size after update

Project Member Reported by malaykeshav@chromium.org, May 23 2018

Issue description

FHD devices with 1.25 device scale factor uses a different logic than rest of the devices to compute the effective device scale factor.

On a FHD device, the device scale factor is only 1.25 if the configured ui scale is 0.8. While in the rest of the cases, the dsf is 1. When display zoom is enabled, the configured ui scale is forced to 1, which means the display never has a device scale factor of 1.25.
 
Labels: ReleaseBlock-Beta
@oshima
For a FHD device, the ui-scale is set to 1 for the "native" resolution. This means when we first boot after switching the flag from ui-scale to display zoom, there is no way to differentiate whether the ui-scale is set to 1 because this is the first boot after switching the flag or this is a non-first boot.

This means, we cannot 1:1 convert display size for a FHD display with 1.25 dsf if before the switch, the display mode was set to the native mode.

One way I can think of is to store what the state of the flag was along with the display prefs.
Do you see anyother way around it?

Comment 3 by osh...@chromium.org, May 24 2018

Can't we remove the ui_scale property when migrated to zoom?
The current list of scales for a FHD 1.25 DSF device is listed below:

      ----------------------------------------------
      | Display modes when UI scale is active      |
      ----------------------------------------------
      | UI scale  | 0.5 | 0.625 | 0.8 | 1.0 | 1.25 |
      ----------------------------------------------
      | DSF       | 1.0 |  1.0  | 1.25| 1.0 | 1.0  |
      ----------------------------------------------
      | Net Scale | 2.0 |  1.6  | 1.25| 1.0 | 0.8  |
      ----------------------------------------------

When we activate the display zoom mode, each of the above net scale must
accurately translate to an exact same net scale so that users don't see
any change in display size after an update. We also know that the DSF will
always be constant to 1.25 DSF when display zoom mode is enabled.
    
      --------------------------------------------------------
      | Desired Net Scale | 2.00 | 1.60 | 1.25 | 1.00 | 0.80 |
      --------------------------------------------------------
      | DSF               | 1.25 | 1.25 | 1.25 | 1.25 | 1.25 |
      --------------------------------------------------------
      --------------------------------------------------------
      | Computed Zoom     | 1.60 | 1.28 | 1.00 | 0.80 | 0.64 |
      --------------------------------------------------------

The computed zoom represents what zoom value we need to have for the 
corresponding ui-scale. That is, if the ui scale before the update
was 0.625, then the zoom level after the update should be 1.28 for the 
display to have the same net scale.

Currently the system maps the ui scale directly to the zoom scale by 
simply taking the inverse of the ui scale. The results we get for a FHD 
1.25 DSF device for this process is as follows

      --------------------------------------------------------
      | Ui scale mapping  | 2.00 | 1.60 | 1.25 | 1.00 | 0.80 |
      --------------------------------------------------------

From the table, we can clearly see that the zoom level we get from a 
direct ui scale mapping is offset from the computed zoom value by a 
factor of 1.25. That is -

  Computed Zoom * 1.25 = Ui Scale Mapped Zoom

This means, we need to offset all zoom values by an amount of 1.25 
to get the correct net scale after the update.
This bug is blocking 68 beta, we are hoping to promote 68 to beta next week, any chance this will be resolved this week?
Yes, the change is already under review. Should be landing this week.
We are trying to go to beta this week, we need this fixed in the next 24 hours.
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/09078534b34df2e9f330fd2c9417f9556c37d9aa

commit 09078534b34df2e9f330fd2c9417f9556c37d9aa
Author: Malay Keshav <malaykeshav@chromium.org>
Date: Mon Jun 11 20:16:44 2018

Correctly port ui scale to zoom scale for FHD devices

This patch performs multiple tasks to successfully port the ui scale to
the correct zoom scale for a FHD device with device scale factor of
1.25.

Firstly it modifies what we store for ui scale in display prefs. We now
store a negative value to indicate that Display zoom was active at the
time of storing the display pref. This allows us to detect at boot
whether we need to port the ui scale to a zoom value or not.

Secondly, it adds a new field to ManagedDisplayInfo that stores whether
the zoom value stored is a port of the ui-scale.

And finally, it adds a correction to the zoom value for 1.25 DSF FHD
devices.

Bug:  845987 
Change-Id: Ia3d83373ad7060b1270b2568321558fd3dc84c28
Component: ManagedDisplayInfo, ui scale, zoom scale, display prefs
Reviewed-on: https://chromium-review.googlesource.com/1070780
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566124}
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ash/display/cursor_window_controller_unittest.cc
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ash/display/display_manager_unittest.cc
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ash/display/display_prefs.cc
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ash/display/display_prefs_unittest.cc
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ash/system/power/power_button_controller_unittest.cc
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ash/wm/native_cursor_manager_ash_unittest.cc
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/testing/buildbot/filters/mash.ash_unittests.filter
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ui/display/manager/display_manager.cc
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ui/display/manager/display_manager.h
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ui/display/manager/managed_display_info.cc
[modify] https://crrev.com/09078534b34df2e9f330fd2c9417f9556c37d9aa/ui/display/manager/managed_display_info.h

Labels: Merge-Request-68
Status: Fixed (was: Assigned)
ping
Project Member

Comment 11 by sheriffbot@chromium.org, Jun 12 2018

Labels: -Merge-Request-68 Hotlist-Merge-Review Merge-Review-68
This bug requires manual review: M68 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), kariahda@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Merge-Review -Merge-Review-68 Merge-Approved-68
Project Member

Comment 13 by bugdroid1@chromium.org, Jun 13 2018

Labels: -merge-approved-68 merge-merged-3440
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/58932d5161295c7476876b534154e8ebbe36c11b

commit 58932d5161295c7476876b534154e8ebbe36c11b
Author: Malay Keshav <malaykeshav@chromium.org>
Date: Wed Jun 13 22:02:26 2018

(merge) Correctly port ui scale to zoom scale for FHD devices

This patch performs multiple tasks to successfully port the ui scale to
the correct zoom scale for a FHD device with device scale factor of
1.25.

Firstly it modifies what we store for ui scale in display prefs. We now
store a negative value to indicate that Display zoom was active at the
time of storing the display pref. This allows us to detect at boot
whether we need to port the ui scale to a zoom value or not.

Secondly, it adds a new field to ManagedDisplayInfo that stores whether
the zoom value stored is a port of the ui-scale.

And finally, it adds a correction to the zoom value for 1.25 DSF FHD
devices.

Bug:  845987 
Change-Id: Ia3d83373ad7060b1270b2568321558fd3dc84c28
Component: ManagedDisplayInfo, ui scale, zoom scale, display prefs
Reviewed-on: https://chromium-review.googlesource.com/1070780
Commit-Queue: Malay Keshav <malaykeshav@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Reviewed-by: Mitsuru Oshima <oshima@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#566124}(cherry picked from commit 09078534b34df2e9f330fd2c9417f9556c37d9aa)
Reviewed-on: https://chromium-review.googlesource.com/1099655
Reviewed-by: Malay Keshav <malaykeshav@chromium.org>
Cr-Commit-Position: refs/branch-heads/3440@{#351}
Cr-Branched-From: 010ddcfda246975d194964ccf20038ebbdec6084-refs/heads/master@{#561733}
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ash/display/cursor_window_controller_unittest.cc
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ash/display/display_manager_unittest.cc
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ash/display/display_prefs.cc
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ash/display/display_prefs_unittest.cc
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ash/system/power/power_button_controller_unittest.cc
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ash/wm/native_cursor_manager_ash_unittest.cc
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/testing/buildbot/filters/mash.ash_unittests.filter
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ui/display/manager/display_manager.cc
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ui/display/manager/display_manager.h
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ui/display/manager/managed_display_info.cc
[modify] https://crrev.com/58932d5161295c7476876b534154e8ebbe36c11b/ui/display/manager/managed_display_info.h

Sign in to add a comment