overlay hints are being sent for the wrong resources |
|||||||
Issue descriptionoverlay promotion hints on android are being sent for resources that don't have any quads in the render pass. the result is that MCVD receives a "promote" and "won't promote" hint, and thus won't enter overlay mode. previously, this was handled by checking for resources with delete pending, but that seems like it doesn't work anymore. we probably need to go through the quad list completely in the strategy. to avoid excess work, we can do this only when any resource (even if it has no quad) wants promotion hints. so, we'll skip the work unless a video is actually being shown.
,
Nov 1
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/791f38e882a15bf2ab15884ab11430d3cff7b879 commit 791f38e882a15bf2ab15884ab11430d3cff7b879 Author: liberato@chromium.org <liberato@chromium.org> Date: Thu Nov 01 18:53:52 2018 Send overlay promotion hints only to displayed resources. This change affects how overlays are chosen on Android. Previously, DisplayResourceProvider would notify all resources that requested a promotion hint, unless they were scheduled for deletion. The intent was that only the resources that are used for the current frame would receive hints. However, that no longer works. The DisplayResourceProvider was sending hints to resources that weren't considered for overlay, such as resources used by a previous CompositorFrame. The result was that the requestor would be told that the resource wasn't promotable, and would try to switch away from SurfaceView. In reality, it just wasn't supposed to be on the screen. Instead, we now explicitly construct a list of resource IDs that are used by DrawQuads, and limit the hints to those. We do this only if any resource (displayed or not) is requesting promotion hints, which should prevent the overlay processor from doing the extra work except when the results actually will be used. Bug: 900438 Change-Id: Iba56e256b08233c9c05bd299d0ecd4a556807ccd Reviewed-on: https://chromium-review.googlesource.com/c/1310498 Commit-Queue: Frank Liberato <liberato@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Commit-Position: refs/heads/master@{#604655} [modify] https://crrev.com/791f38e882a15bf2ab15884ab11430d3cff7b879/components/viz/service/display/display_resource_provider.cc [modify] https://crrev.com/791f38e882a15bf2ab15884ab11430d3cff7b879/components/viz/service/display/display_resource_provider.h [modify] https://crrev.com/791f38e882a15bf2ab15884ab11430d3cff7b879/components/viz/service/display/display_resource_provider_unittest.cc [modify] https://crrev.com/791f38e882a15bf2ab15884ab11430d3cff7b879/components/viz/service/display/overlay_candidate.cc [modify] https://crrev.com/791f38e882a15bf2ab15884ab11430d3cff7b879/components/viz/service/display/overlay_candidate.h [modify] https://crrev.com/791f38e882a15bf2ab15884ab11430d3cff7b879/components/viz/service/display/overlay_processor.cc [modify] https://crrev.com/791f38e882a15bf2ab15884ab11430d3cff7b879/components/viz/service/display/overlay_strategy_underlay.cc
,
Nov 4
requesting merge based on UMA stats. 72 prior to 3599 has very little overlay usage (expected result of this bug), while 3599 looks like it always has. 3599 is where c#2 landed. 71 looks like it's broken in the same was as 3598. 72.3598 (bad): https://uma.googleplex.com/p/chrome/histograms/?endDate=20181102&dayCount=7&histograms=Media.AVDA.FrameInformation&fixupData=true&otherVersions=true&showMax=true&filters=platform%2Ceq%2CA%2Csimple_version%2Ceq%2C72.0.3598.0%2Cisofficial%2Ceq%2CTrue&implicitFilters=isofficial 72.3599 (good): https://uma.googleplex.com/p/chrome/histograms/?endDate=20181102&dayCount=7&histograms=Media.AVDA.FrameInformation&fixupData=true&otherVersions=true&showMax=true&filters=platform%2Ceq%2CA%2Csimple_version%2Ceq%2C72.0.3599.0%2Cisofficial%2Ceq%2CTrue&implicitFilters=isofficial 71 (bad): https://uma.googleplex.com/p/chrome/histograms/?endDate=20181102&dayCount=7&histograms=Media.AVDA.FrameInformation&fixupData=true&otherVersions=true&showMax=true&filters=platform%2Ceq%2CA%2Csimple_version%2Ceq%2C71.0.3578.31%2Cisofficial%2Ceq%2CTrue&implicitFilters=isofficial
,
Nov 4
This bug requires manual review: M71 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), kbleicher@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Nov 5
Approved for merge to 71, branch 3578.
,
Nov 5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9c820622cfaf02366e6d5a07d6d41752803271fd commit 9c820622cfaf02366e6d5a07d6d41752803271fd Author: liberato@chromium.org <liberato@chromium.org> Date: Mon Nov 05 20:24:37 2018 Send overlay promotion hints only to displayed resources. This change affects how overlays are chosen on Android. Previously, DisplayResourceProvider would notify all resources that requested a promotion hint, unless they were scheduled for deletion. The intent was that only the resources that are used for the current frame would receive hints. However, that no longer works. The DisplayResourceProvider was sending hints to resources that weren't considered for overlay, such as resources used by a previous CompositorFrame. The result was that the requestor would be told that the resource wasn't promotable, and would try to switch away from SurfaceView. In reality, it just wasn't supposed to be on the screen. Instead, we now explicitly construct a list of resource IDs that are used by DrawQuads, and limit the hints to those. We do this only if any resource (displayed or not) is requesting promotion hints, which should prevent the overlay processor from doing the extra work except when the results actually will be used. Bug: 900438 Change-Id: Iba56e256b08233c9c05bd299d0ecd4a556807ccd Reviewed-on: https://chromium-review.googlesource.com/c/1310498 Commit-Queue: Frank Liberato <liberato@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#604655}(cherry picked from commit 791f38e882a15bf2ab15884ab11430d3cff7b879) Reviewed-on: https://chromium-review.googlesource.com/c/1318417 Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/branch-heads/3578@{#520} Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034} [modify] https://crrev.com/9c820622cfaf02366e6d5a07d6d41752803271fd/components/viz/service/display/display_resource_provider.cc [modify] https://crrev.com/9c820622cfaf02366e6d5a07d6d41752803271fd/components/viz/service/display/display_resource_provider.h [modify] https://crrev.com/9c820622cfaf02366e6d5a07d6d41752803271fd/components/viz/service/display/display_resource_provider_unittest.cc [modify] https://crrev.com/9c820622cfaf02366e6d5a07d6d41752803271fd/components/viz/service/display/overlay_candidate.cc [modify] https://crrev.com/9c820622cfaf02366e6d5a07d6d41752803271fd/components/viz/service/display/overlay_candidate.h [modify] https://crrev.com/9c820622cfaf02366e6d5a07d6d41752803271fd/components/viz/service/display/overlay_processor.cc [modify] https://crrev.com/9c820622cfaf02366e6d5a07d6d41752803271fd/components/viz/service/display/overlay_strategy_underlay.cc
,
Nov 5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9c820622cfaf02366e6d5a07d6d41752803271fd Commit: 9c820622cfaf02366e6d5a07d6d41752803271fd Author: liberato@chromium.org Commiter: liberato@chromium.org Date: 2018-11-05 20:24:37 +0000 UTC Send overlay promotion hints only to displayed resources. This change affects how overlays are chosen on Android. Previously, DisplayResourceProvider would notify all resources that requested a promotion hint, unless they were scheduled for deletion. The intent was that only the resources that are used for the current frame would receive hints. However, that no longer works. The DisplayResourceProvider was sending hints to resources that weren't considered for overlay, such as resources used by a previous CompositorFrame. The result was that the requestor would be told that the resource wasn't promotable, and would try to switch away from SurfaceView. In reality, it just wasn't supposed to be on the screen. Instead, we now explicitly construct a list of resource IDs that are used by DrawQuads, and limit the hints to those. We do this only if any resource (displayed or not) is requesting promotion hints, which should prevent the overlay processor from doing the extra work except when the results actually will be used. Bug: 900438 Change-Id: Iba56e256b08233c9c05bd299d0ecd4a556807ccd Reviewed-on: https://chromium-review.googlesource.com/c/1310498 Commit-Queue: Frank Liberato <liberato@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#604655}(cherry picked from commit 791f38e882a15bf2ab15884ab11430d3cff7b879) Reviewed-on: https://chromium-review.googlesource.com/c/1318417 Reviewed-by: Frank Liberato <liberato@chromium.org> Cr-Commit-Position: refs/branch-heads/3578@{#520} Cr-Branched-From: 4226ddf99103e493d7afb23a4c7902ee496108b6-refs/heads/master@{#599034}
,
Nov 5
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by liber...@chromium.org
, Oct 31