New issue
Advanced search Search tips

Issue 735640 link

Starred by 2 users

Issue metadata

Status: Available
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 735237

Blocking:
issue 672303



Sign in to add a comment

ozone/drm overlay checking is indecisive

Project Member Reported by rjkroege@chromium.org, Jun 21 2017

Issue description

In ozone/drm OverlayCandidatesOzone::CheckOverlaySupport, overlay determination is not stable and flicks off several times before consisting returning true when given a OverlaySurfaceCandidateList specifying a OverlaySurfaceCandidate that can be placed in an overlay.

This results in unnecessary CPU and GPU work on the behalf of the display compositor.

Easy replication: run on device:

./ozone_demo --enable-overlay --trace-to-console'='hwoverlays

watch the overlay checker demo code cycle back forth a few times:

SurfacelessGlRenderer::OverlayChecker[hwoverlays], {canihaz:true, display_rect:"9.000000,744.000000 320.000000x212.000000"}
[0621/164759.556161:ERROR:trace_log.cc(1464)] : SurfacelessGlRenderer::OverlayChecker[hwoverlays], {canihaz:true, display_rect:"9.000000,744.000000 320.000000x212.000000"} (0.125 ms)
...
SurfacelessGlRenderer::OverlayChecker[hwoverlays], {canihaz:false, display_rect:"9.000000,744.000000 320.000000x212.000000"}
[0621/164759.556161:ERROR:trace_log.cc(1464)] : SurfacelessGlRenderer::OverlayChecker[hwoverlays], {canihaz:false, display_rect:"9.000000,744.000000 320.000000x212.000000"} (0.125 ms)

before settling in the true state.


 
Blockedon: 735237
Overlay determination not being stable is actually the intended behavior until we address crbug.com/756454 and we do the validation in the same process.

Here is a patch (crrev.com/c/644351) that changes ozone_demo so that the overlay moves every n frames. In that way the validation converges after a while. 
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 31 2017

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

commit 5d4c0cf9dd3f457fe3511a8358a5e6e578234c06
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Thu Aug 31 02:13:40 2017

ozone_demo: Use result of CheckOverlaySupport.

ozone_demo has the option to display one hardware overlay on top of the
primary plane, and it uses CheckOverlaySupport functionality to query
if a configuartion of overlays is supported.

Currently, the result of the query is not used, and an HW overlay
is always scheduled if requested.

This CL uses the result of the query and avoids scheduling the overlay
if the result says it is not supported.

In order to do that this CL has to:

- Add the primary plane, when present, to the list of overlays to be tested,
since the primary plane contributes significantly to the scanout bandwith and
its presence is determinant to the feasibility of scanning out a set of
overlays.

- Get rid of the continuous overlay animation, and instead replace it with a
stepped animation every n frames.
HW overlays validations are asynchronous and results are sent back after a few frames,
while originally perceived as a bug crbug.com/735640, this is the intended behavior.
Validating configurations is costly and we can't afford to validate once per
frame. We validate HW overlay configurations only after they're stable for
a few frames.
Moving the HW overlays every n frames allows the configuration of overlays
to be stable for a few frames.

- Add double buffering to the overlay. Since the continuous animation has
been removed, we now have two buffers with different colors for the overlay
and we flip those. This makes it visible we're updating the HW overlay
along with the background color.


Bug: 735640
Test: ozone_demo on eve, with/without enable-overlay/disable-primary-plane
Change-Id: I652fbc75ce385b0a1f6563d4a85005b643226128
Reviewed-on: https://chromium-review.googlesource.com/644351
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Cr-Commit-Position: refs/heads/master@{#498724}
[modify] https://crrev.com/5d4c0cf9dd3f457fe3511a8358a5e6e578234c06/ui/ozone/demo/surfaceless_gl_renderer.cc
[modify] https://crrev.com/5d4c0cf9dd3f457fe3511a8358a5e6e578234c06/ui/ozone/demo/surfaceless_gl_renderer.h

Comment 4 Deleted

Comment 5 Deleted

Project Member

Comment 6 by sheriffbot@chromium.org, Sep 17

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Owner: rjkroege@chromium.org
Status: Available (was: Untriaged)

Sign in to add a comment