• dcastagna's avatar
    cc: Enable non-opaque harware overlays. · 21fe8132
    dcastagna authored
    This CL enables alpha-blended HW overlays.
    
    Additionally, it clears up the way overlay candidates might or might not
    be considered based on buffer format and alpha blending requested:
    
    - An opacity on the quad different than 1 will cause the candidate to
      always be rejected since we can't modulate the alpha of an overlay plane.
    
    - We support only kSrc (no blending) and kSrcOver (blend) blending modes.
    
    - For fullscreen overlays we can allow both blending modes as long as the
      opaque rect is as big as the buffer (ShouldDrawWithBlending() true).
      An opaque FD will always be used in this case (crrev.com/2743403005).
    
    - For non-fullscreen overlays, we can't allow kSrc if the buffer has a
      format with an alpha channel, since the alpha channel might not be
      initialized and we don't disable blending when scanning out yet.
    
    BUG=695296
    CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel
    
    Review-Url: https://codereview.chromium.org/2749783006
    Cr-Commit-Position: refs/heads/master@{#457528}
    21fe8132
overlay_strategy_single_on_top.cc 3.3 KB