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

Issue 859723 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Dec 26
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug

Blocking:
issue 866631



Sign in to add a comment

Don't assume a single CompositorImpl in content.

Project Member Reported by khushals...@chromium.org, Jul 3

Issue description

The code in CompositorImpl currently assumes that only a single CompositorImpl instance exists for an application in management of the GPU process. This includes sending app foreground/background state updates to the GPU process and to GpuDataManagerImpl. This is a brittle assumption since the embedder can potentially create multiple Compositor instances. In chrome they map 1:1 to a SurfaceView.

A better way to know this state would be the ApplicationStateListener.
 
Owner: vikassoni@chromium.org
Status: Assigned (was: Available)
Project Member

Comment 2 by bugdroid1@chromium.org, Sep 7

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

commit d002ecc01eb4826bad9c8824f2fbbbcbd888563a
Author: Vikas Soni <vikassoni@chromium.org>
Date: Fri Sep 07 22:48:49 2018

Use ApplicationStateListener to manage GPU process.

The code in CompositorImpl currently assumes that only a single
CompositorImpl instance exists for an application in management
of the GPU process. This includes sending app foreground/background
state updates to the GPU process and to GpuDataManagerImpl. This is
a brittle assumption since the embedder can potentially create
multiple Compositor instances.
This CL uses the ApplicationStateListener to correctly detemine the
state of application.

Bug:  859723 
Change-Id: Icdad848298f1cdd75995f496b2f0bdf70385336b
Reviewed-on: https://chromium-review.googlesource.com/1205202
Commit-Queue: vikas soni <vikassoni@chromium.org>
Reviewed-by: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589698}
[modify] https://crrev.com/d002ecc01eb4826bad9c8824f2fbbbcbd888563a/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/d002ecc01eb4826bad9c8824f2fbbbcbd888563a/content/browser/renderer_host/compositor_impl_android.h
[modify] https://crrev.com/d002ecc01eb4826bad9c8824f2fbbbcbd888563a/content/browser/renderer_host/compositor_impl_android_browsertest.cc

Status: Fixed (was: Assigned)
Cc: khushals...@chromium.org
Labels: -Pri-3 Merge-Request-70 Pri-1
This change addresses an issue where we incorrectly purge memory in Chrome during fullscreen and splitscreen cases. This on its own is useful, but additionally we need this code to merge a follow-up fix for increased crash rate due to restarting the GPU proc while backgrounded.

This change has baked for weeks, so the merge seems very safe at this point. Would like to merge to unblock an additional fix. bumping to P1 to match the priority of the change it's blocking.
Project Member

Comment 6 by sheriffbot@chromium.org, Oct 1

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

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Started (was: Fixed)
Blocking: 866631
Labels: -Hotlist-Merge-Review -Merge-Review-70 Merge-Approved-70
Merge approved to 70, branch 3538.
Project Member

Comment 10 by bugdroid1@chromium.org, Oct 1

Labels: -merge-approved-70 merge-merged-3538
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9d5760d771920a569366e80d4b9868b48fc2098e

commit 9d5760d771920a569366e80d4b9868b48fc2098e
Author: Eric Karl <ericrk@chromium.org>
Date: Mon Oct 01 18:47:33 2018

Use ApplicationStateListener to manage GPU process.

The code in CompositorImpl currently assumes that only a single
CompositorImpl instance exists for an application in management
of the GPU process. This includes sending app foreground/background
state updates to the GPU process and to GpuDataManagerImpl. This is
a brittle assumption since the embedder can potentially create
multiple Compositor instances.
This CL uses the ApplicationStateListener to correctly detemine the
state of application.

TBR=vikassoni@chromium.org

(cherry picked from commit d002ecc01eb4826bad9c8824f2fbbbcbd888563a)

Bug:  859723 
Change-Id: Icdad848298f1cdd75995f496b2f0bdf70385336b
Reviewed-on: https://chromium-review.googlesource.com/1205202
Commit-Queue: vikas soni <vikassoni@chromium.org>
Reviewed-by: Khushal <khushalsagar@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#589698}
Reviewed-on: https://chromium-review.googlesource.com/1255462
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/branch-heads/3538@{#783}
Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811}
[modify] https://crrev.com/9d5760d771920a569366e80d4b9868b48fc2098e/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/9d5760d771920a569366e80d4b9868b48fc2098e/content/browser/renderer_host/compositor_impl_android.h
[modify] https://crrev.com/9d5760d771920a569366e80d4b9868b48fc2098e/content/browser/renderer_host/compositor_impl_android_browsertest.cc

Labels: Merge-Merged-70-3538
The following revision refers to this bug: 
https://chromium.googlesource.com/chromium/src.git/+/9d5760d771920a569366e80d4b9868b48fc2098e

Commit: 9d5760d771920a569366e80d4b9868b48fc2098e
Author: ericrk@chromium.org
Commiter: ericrk@chromium.org
Date: 2018-10-01 18:47:33 +0000 UTC

Use ApplicationStateListener to manage GPU process.

The code in CompositorImpl currently assumes that only a single
CompositorImpl instance exists for an application in management
of the GPU process. This includes sending app foreground/background
state updates to the GPU process and to GpuDataManagerImpl. This is
a brittle assumption since the embedder can potentially create
multiple Compositor instances.
This CL uses the ApplicationStateListener to correctly detemine the
state of application.

TBR=vikassoni@chromium.org

(cherry picked from commit d002ecc01eb4826bad9c8824f2fbbbcbd888563a)

Bug:  859723 
Change-Id: Icdad848298f1cdd75995f496b2f0bdf70385336b
Reviewed-on: https://chromium-review.googlesource.com/1205202
Commit-Queue: vikas soni <vikassoni@chromium.org>
Reviewed-by: Khushal <khushalsagar@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#589698}
Reviewed-on: https://chromium-review.googlesource.com/1255462
Reviewed-by: Eric Karl <ericrk@chromium.org>
Cr-Commit-Position: refs/branch-heads/3538@{#783}
Cr-Branched-From: 79f7c91a2b2a2932cd447fa6f865cb6662fa8fa6-refs/heads/master@{#587811}
Labels: -Pri-1 Pri-2
[GPU Triage Council]
Status: Fixed (was: Started)
Looks like this was re-opened for a merge which has been done.

Sign in to add a comment