New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 687290 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Butterfly: Device screen is black after close/open lid with external monitor connected

Project Member Reported by helenzhang@google.com, Jan 31 2017

Issue description

Chrome OS 9202.11.0, 57.0.2987.19

What steps will reproduce the problem?
(1) Sign in with external monitor connected ( HP ZR24w, Acer FT200HQL )  
(2) Ctr-F4 to change to mirror mode 
(3) Close lid 
(4) Open lid 

What is the expected result?
Device screen ( internal display ) should come up with display after exiting dock mode  

What happens instead?
Device screen ( internal display ) did not come up with display after exiting dock mode  

Always reproducible 
- Remove the external monitor at the time, device screen still can not resume with display. 
- Switch to extended mode at the time will resolve the issue. 

 
Cc: rjahagir@chromium.org pgangishetty@google.com ka...@chromium.org sontis@chromium.org
log and screenshot:
https://pantheon.corp.google.com/storage/browser/chromiumos-test-logs/bugfiles/cr/687290/
1

Owner: marc...@chromium.org
Status: Available (was: Untriaged)
marcheu@ is this something that would fall on your plate? If not, can you please suggest a more appropriate owner?
marcheu@ Can you please suggest an alternative owner?
Owner: dcasta...@chromium.org
Daniele, I see the following:

[4215:4227:0209/152524.515565:ERROR:hardware_display_plane_manager.cc(253)] Failed to find a free plane for crtc 19
[4215:4227:0209/152524.515671:ERROR:crtc_controller.cc(102)] Failed to assign overlay planes for crtc 19: Invalid argument

I think that's related to overlay work, right?
dcastagna@ can you please review and let us know if this is something you would work on? this is currently beta blocking.
Status: Started (was: Available)
I'm looking into this.
The first ChromeOS version where we see this issue is R57-9148.0.0, before that it seems to work fine.

I suspect this is related to ChromeOS code and not Chrome code since if I run ToT Chrome on top of R57-9147.0.0 I can't reproduce the issue.

Just looking at https://crosland.corp.google.com/log/9147.0.0..9148.0.0 I don't see what could have caused it. 

I'll investigate a little bit more.

Also, this is not only on Butterfly, as Stephane noticed this probably applies to all SandyBridge devices. I'm reproducing the problem on a Lumpy.
I was wrong in #8. The regression was introduced by a Chrome CL (crrev.com/2603863002)

crrev.com/2693903003 should fix the issue.
Cc: dcasta...@chromium.org helenzhang@chromium.org pgangishetty@chromium.org marc...@chromium.org
 Issue 691752  has been merged into this issue.
Project Member

Comment 11 by bugdroid1@chromium.org, Feb 13 2017

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

commit e2b768afd564f860a3dc32db6e0114ca6e0db9f6
Author: dcastagna <dcastagna@chromium.org>
Date: Mon Feb 13 22:41:25 2017

ozone: Fix HardwareDisplayController::AddCrtc.

crrev.com/2603863002 replaced ScopedPtrHashMap with unordered_map.

The CL replaced the statement
  owned_hardware_planes_.add(drm, plane_list)
with
  owned_hardware_planes_[drm.get()] = plane_list

While ScopedPtrHashMap::add did nothing if the key was already present,
the new operation on the unordered_map is now always resetting the list
of planes every time the statement is executed. This new unintented
behavior introduced a regression ( crbug.com/687290 ).

This CL restores the original intended behavior.

BUG= 687290 

Review-Url: https://codereview.chromium.org/2693903003
Cr-Commit-Position: refs/heads/master@{#450125}

[modify] https://crrev.com/e2b768afd564f860a3dc32db6e0114ca6e0db9f6/ui/ozone/platform/drm/gpu/hardware_display_controller.cc

Labels: Merge-Request-57
Labels: -Merge-Request-57 Merge-Approved-57
Approving merge to M57 Chrome OS.
Project Member

Comment 14 by bugdroid1@chromium.org, Feb 14 2017

Labels: -merge-approved-57 merge-merged-2987
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9e6372cfc110717015ac2249bf13961987536fca

commit 9e6372cfc110717015ac2249bf13961987536fca
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Tue Feb 14 18:48:47 2017

ozone: Fix HardwareDisplayController::AddCrtc.

crrev.com/2603863002 replaced ScopedPtrHashMap with unordered_map.

The CL replaced the statement
  owned_hardware_planes_.add(drm, plane_list)
with
  owned_hardware_planes_[drm.get()] = plane_list

While ScopedPtrHashMap::add did nothing if the key was already present,
the new operation on the unordered_map is now always resetting the list
of planes every time the statement is executed. This new unintented
behavior introduced a regression ( crbug.com/687290 ).

This CL restores the original intended behavior.

BUG= 687290 

Review-Url: https://codereview.chromium.org/2693903003
Cr-Commit-Position: refs/heads/master@{#450125}
(cherry picked from commit e2b768afd564f860a3dc32db6e0114ca6e0db9f6)

Review-Url: https://codereview.chromium.org/2693043006 .
Cr-Commit-Position: refs/branch-heads/2987@{#504}
Cr-Branched-From: ad51088c0e8776e8dcd963dbe752c4035ba6dab6-refs/heads/master@{#444943}

[modify] https://crrev.com/9e6372cfc110717015ac2249bf13961987536fca/ui/ozone/platform/drm/gpu/hardware_display_controller.cc

kalin@ can you please validate this fix and close once build is ready?
It's still reproducible in 9202.27.0/57.0.2987.52. I'll check tomorrow in later build.  
Verified the fix in 9202.30.0/57.0.2987.54.
Status: Verified (was: Started)

Sign in to add a comment