New issue
Advanced search Search tips

Issue 775757 link

Starred by 8 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

with multiple monitors switching resolution reverts other monitor to default resolution

Reported by russ.s...@intel.com, Oct 18 2017

Issue description

UserAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
Platform: 10039.0.0 (Official Build) dev -channel eve test

Steps to reproduce the problem:
0. connect 2 monitors by plugging in to both USB-C ports
1. Click on the lower right-hand corner of the system tray/shelf
2. Click Settings
3. Click Display settings
4. Select the representation of 1 external display
5. In the Resolution drop-down list, click on the lowest resolution
6. Select the representation of the other external display, click on the lowest resolution
7. Repeat steps 4-6, and select the highest resolution on each external display

What is the expected behavior?
when monitor 2 resolution is changed, monitor 1 resolution should persist at its current setting

What went wrong?
after setting monitor 1 to its minimum resolution, setting monitor 2 to its minimum resolution causes a black screen refresh and monitor 1 resolution is reset back to its normal setting. This happens when going back and forth between the two monitors. If I switch the eDP to its minimum resolution that seems to change the behavior with the external monitors. This also happens through an MST hub, so either two monitors plugged directly into the USB-C ports or a hub/dock.

Did this work before? N/A 

Chrome version: 64.0.3241.0  Channel: dev
OS Version: R64 10039
Flash Version:
 
Cc: ovanieva@chromium.org afakhry@chromium.org
Components: -UI UI>Shell>MultipleMonitor
Owner: weidongg@chromium.org
Status: Assigned (was: Unconfirmed)
The design of current logic:
When you change resolution of monitor A, a notification with "revert" button will pop up (The notification never timeout if you don't click on it.). Before the notification disappears, the resolution change of monitor A can be reverted either by click "revert" button or change monitor B's resolution.

This seems to be a weird design. I think we can either add an "accept" button to the notification or finalize the change for monitor A when we start adjust B's resolution.

Either of this requires UX point of view.

I just reproduced this and the "revert" button is irrelevant; acknowledging it or not doesn't make any difference.

This issue is just: try to change the resolution of one monitor and ChromeOS will sometimes change the resolution of the OTHER monitor too to some random value for no obvious reason/without any obvious logic.

I just reproduced this with MST but that doesn't seem to matter either because the original reproduction was without MST.

It really doesn't help that ChromeOS offers no control on and even hides really hard the refresh rates. In fact I suspect that the "smart" refresh rate selection could be where this bug is; maybe it's not designed/prepared for multiple external monitors.
Cc: malaykeshav@chromium.org
+malay who is working on changing the resolution settings.
I found another bug: when using MST the display settings panel can simply not be trusted. In the first screenshot the popup is correct and the display settings is wrong.
The second picture attached is taken after merely closing and re-opening the display settings. Now a different resolution is shown - still wrong.

This different bug seems MST specific though.
display_settings_wrong_resolution.png
164 KB View Download
wrong_resolution_2.jpg
2.6 MB View Download
> This different bug seems MST specific though.

In fact it's not MST specific, two monitors are enough. Eventually I got the display settings to show me wrong values even with MST disabled and one monitor connected on each Type-C port (PixelBook R65-10290.0.0). I don't think I ever saw any wrong resolution reported by the popup but I could have missed that.

BTW here's a command useful to find the real resolutions:

  grep -A1 connected, /sys/kernel/debug/dri/0/i915_display_info 
A different but probably related issue is the lack of chooser when there are more than 3 screens:  issue 698290
I thought getting the display settings to report a wrong resolution required two external monitors but no: just observed this again with a single external monitor this time, see screenshot. So two external monitors seem to just trigger that bug more frequently. Again the popup is correct while the settings is wrong.

Interestingly, the settings report a resolution mode that isn't even listed as supported by modetest -c
Screenshot 2018-01-29 at 2.47.19 PM - Display 1.png
173 KB View Download
In response to #8
The resolution you see on the settings page is the Hardware Resolution with the device scale factor applied. On the other hand, the notification only displays the Hardware resolution.

In this particular example, the device scale factor is 1.25. (3072 * 1.25 = 3840)


Thx, I thought scaling was only for eDP panels (where it is the only option anyway).

So for external monitors how can you predict/control/tell whether scaling will be active versus not? I tried the "stats for nerds" in Youtube but ended up even more confused.
Scaling was added temporarily for 4k displays. I believe there are only 3 scales currently supported for 4k external displays. 1, 1.25 and 2. There is no way to differentiate between them right now, unless you change the slider on display resolution settings and try them one by one. 
An easy way to check what your current device scale factor is by visiting https://bjango.com/articles/min-device-pixel-ratio/

Display resolution will be replaced with a “display size” option in M66 (is in experimental for M65 and can be accessed via chrome://flags). This will solely control device scale factor of the display instead of resolution. Resolution on the other hand would be presented as an advanced setting for external disolays.
> An easy way to check what your current device scale factor is by visiting https://bjango.com/articles/min-device-pixel-ratio/

I just tried this page on a fixed 1920x1080 eDP panel (cave) and I couldn't make sense of it.
When cycling through all the scaled(=fake) resolutions from 960x540 to 2400x1350 this page always shows the same values except for one resolution: 1536x864. Why is just this one different?

For 1536x864:
-webkit-min-device-pixel-ratio 1.2
-o-min-device-pixel-ratio nothin’
min-resolution (dpi) 115dpi
min-resolution (dppx) 1.2dppx

For all other fake "resolutions" from 960x540 to 2400x1350:
-webkit-min-device-pixel-ratio 1.0
-o-min-device-pixel-ratio nothin’
min-resolution (dpi) 96dpi
min-resolution (dppx) 1.0dppx

"-webkit-min-device-pixel-ratio 1.2" says that the device scale factor is 1.2. (Its actually 1.25, but the website only gives it upto 1 decimal point)

It means 1536x864 is a "fake" resolution and is actually just 1920*1080 hardware resolution rendered at 1.25 device scale factor.

All the other resolutions are actual hardware resolutions provided to the system by the display hardware. They all are rendered at the device scale factor of 1.0
> All the other resolutions are actual hardware resolutions provided to the system by the display hardware. They all are rendered at the device scale factor of 1.0

No; as I wrote above this is an eDP panel and it only supports 1920x1080. This is confirmed by grep -A1 'connected,' i915_display_info AND "modetest -p | grep driver" throughout all pseudo-resolution changes. This is with cave image R65.0.3299.0 / 7820.347.0

Long story short this test page doesn't seem to work with eDP panels. On the other hand it does report correctly and as you predicted the scaling factor for the *external* 4K monitor I tested in comment #8.
> unless you change the slider on display resolution settings and try them one by one. 

I found that left and right keyboard shortcuts offer a practical and even convenient way to try resolutions one by one, including the scaled ones. None of them reproduces the very first screenshot attached to comment #5 (it would be 1.5 scaling if it were scaling)

> Display resolution will be replaced with a “display size” option in M66 [...] This will solely control device scale factor of the display instead of resolution...

Sounds like a nice simplification, looking forward to it.

 issue 822248  looks like a duplicate

Sign in to add a comment