Changeset 269895 in webkit


Ignore:
Timestamp:
Nov 17, 2020 12:28:31 AM (3 years ago)
Author:
timothy_horton@apple.com
Message:

REGRESSION (r269824): YouTube media control bar sometimes flickers
https://bugs.webkit.org/show_bug.cgi?id=219017
<rdar://problem/71454799>

Reviewed by Simon Fraser.

Source/WebKit:

Test: compositing/repaint/transparent-layer-repaint.html

  • Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):
I accidentally lost the Copy composite operator in r269824, causing
the repaint copy-forward to blend instead of just copying.
This wreaks havoc on layers with contents with colors that have 0 < alpha < 1,
because every repaint means the colors intensify.

LayoutTests:

  • compositing/repaint/transparent-layer-repaint-expected.html: Added.
  • compositing/repaint/transparent-layer-repaint.html: Added.

Add a test that:

  • repaints a backingstoreful compositing layer
  • more than once
  • in a small enough area that we use partial repaint
  • with partially-transparent pixels

And then ensures that the background of that layer (the non-repainted part)
remains the color that it should.

Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r269894 r269895  
     12020-11-17  Tim Horton  <timothy_horton@apple.com>
     2
     3        REGRESSION (r269824): YouTube media control bar sometimes flickers
     4        https://bugs.webkit.org/show_bug.cgi?id=219017
     5        <rdar://problem/71454799>
     6
     7        Reviewed by Simon Fraser.
     8
     9        * compositing/repaint/transparent-layer-repaint-expected.html: Added.
     10        * compositing/repaint/transparent-layer-repaint.html: Added.
     11        Add a test that:
     12            - repaints a backingstoreful compositing layer
     13            - more than once
     14            - in a small enough area that we use partial repaint
     15            - with partially-transparent pixels
     16
     17        And then ensures that the background of that layer (the non-repainted part)
     18        remains the color that it should.
     19
    1202020-11-17  Rob Buis  <rbuis@igalia.com>
    221
  • trunk/Source/WebKit/ChangeLog

    r269890 r269895  
     12020-11-17  Tim Horton  <timothy_horton@apple.com>
     2
     3        REGRESSION (r269824): YouTube media control bar sometimes flickers
     4        https://bugs.webkit.org/show_bug.cgi?id=219017
     5        <rdar://problem/71454799>
     6
     7        Reviewed by Simon Fraser.
     8
     9        Test: compositing/repaint/transparent-layer-repaint.html
     10
     11        * Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
     12        (WebKit::RemoteLayerBackingStore::display):
     13        I accidentally lost the Copy composite operator in r269824, causing
     14        the repaint copy-forward to blend instead of just copying.
     15        This wreaks havoc on layers with contents with colors that have 0 < alpha < 1,
     16        because every repaint means the colors intensify.
     17
    1182020-11-16  Brent Fulgham  <bfulgham@apple.com>
    219
  • trunk/Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm

    r269824 r269895  
    252252    if (!m_dirtyRegion.contains(layerBounds)) {
    253253        ASSERT(m_backBuffer.imageBuffer);
    254         context.drawImageBuffer(*m_backBuffer.imageBuffer, { 0, 0 });
     254        context.drawImageBuffer(*m_backBuffer.imageBuffer, { 0, 0 }, { WebCore::CompositeOperator::Copy });
    255255    }
    256256
Note: See TracChangeset for help on using the changeset viewer.