Changeset 122306 in webkit


Ignore:
Timestamp:
Jul 11, 2012 12:22:18 AM (12 years ago)
Author:
kbr@google.com
Message:

compositing/webgl/webgl-nonpremultiplied-blend.html is flaky on Lion
https://bugs.webkit.org/show_bug.cgi?id=82412

Reviewed by Adrienne Walker.

Source/WebCore:

When compositing premultipliedAlpha=false WebGL canvases, use a separate
blend function for the alpha channel to avoid writing alpha < 1. This
makes the behavior more consistent with all other compositing results
and avoids situations where the alpha channel is preserved on some
platforms and discarded on others.

Covered by existing tests.

  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererChromium::drawTextureQuad):

Use separate alpha blend function when compositing premultipliedAlpha=false WebGL canvases.

LayoutTests:

Removed Chromium Mac-specific pixel results and failure expectations.

  • platform/chromium-mac/compositing/webgl/webgl-nonpremultiplied-blend-expected.png: Removed.
  • platform/chromium/TestExpectations:

Removed expectations of failure.

Location:
trunk
Files:
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r122305 r122306  
     12012-07-11  Kenneth Russell  <kbr@google.com>
     2
     3        compositing/webgl/webgl-nonpremultiplied-blend.html is flaky on Lion
     4        https://bugs.webkit.org/show_bug.cgi?id=82412
     5
     6        Reviewed by Adrienne Walker.
     7
     8        Removed Chromium Mac-specific pixel results and failure expectations.
     9
     10        * platform/chromium-mac/compositing/webgl/webgl-nonpremultiplied-blend-expected.png: Removed.
     11        * platform/chromium/TestExpectations:
     12            Removed expectations of failure.
     13
    1142012-07-11  Csaba Osztrogonác  <ossy@webkit.org>
    215
  • trunk/LayoutTests/platform/chromium/TestExpectations

    r122281 r122306  
    24022402BUGNONE SLOW WIN DEBUG : platform/chromium/virtual/gpu/fast/canvas/canvas-getImageData.html = PASS
    24032403
    2404 BUGWK55968 MAC WIN DEBUG : compositing/webgl/webgl-nonpremultiplied-blend.html = IMAGE
    2405 BUGWK82412 LION RELEASE : compositing/webgl/webgl-nonpremultiplied-blend.html = IMAGE PASS
    2406 
    24072404BUGWK53868 : fast/notifications/notifications-document-close-crash.html = PASS TEXT
    24082405
     
    37023699BUGWK89936 WIN : fast/css/text-rendering.html = IMAGE+TEXT
    37033700
    3704 // Started failing after r121267.
    3705 BUGWK89998 SNOWLEOPARD RELEASE : compositing/webgl/webgl-nonpremultiplied-blend.html = IMAGE
    3706 
    37073701// Started timeout between r121233:r121239.
    37083702BUGWK90003 WIN DEBUG : fast/js/repeat-cached-vm-reentry.html = TIMEOUT PASS
  • trunk/Source/WebCore/ChangeLog

    r122303 r122306  
     12012-07-11  Kenneth Russell  <kbr@google.com>
     2
     3        compositing/webgl/webgl-nonpremultiplied-blend.html is flaky on Lion
     4        https://bugs.webkit.org/show_bug.cgi?id=82412
     5
     6        Reviewed by Adrienne Walker.
     7
     8        When compositing premultipliedAlpha=false WebGL canvases, use a separate
     9        blend function for the alpha channel to avoid writing alpha < 1. This
     10        makes the behavior more consistent with all other compositing results
     11        and avoids situations where the alpha channel is preserved on some
     12        platforms and discarded on others.
     13
     14        Covered by existing tests.
     15
     16        * platform/graphics/chromium/LayerRendererChromium.cpp:
     17        (WebCore::LayerRendererChromium::drawTextureQuad):
     18            Use separate alpha blend function when compositing premultipliedAlpha=false WebGL canvases.
     19
    1202012-07-10  Yoshifumi Inoue  <yosin@chromium.org>
    221
  • trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp

    r122272 r122306  
    10511051    GLC(context(), context()->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_WRAP_T, GraphicsContext3D::CLAMP_TO_EDGE));
    10521052
    1053     if (!quad->premultipliedAlpha())
    1054         GLC(context(), context()->blendFunc(GraphicsContext3D::SRC_ALPHA, GraphicsContext3D::ONE_MINUS_SRC_ALPHA));
     1053    if (!quad->premultipliedAlpha()) {
     1054        // As it turns out, the premultiplied alpha blending function (ONE, ONE_MINUS_SRC_ALPHA)
     1055        // will never cause the alpha channel to be set to anything less than 1.0 if it is
     1056        // initialized to that value! Therefore, premultipliedAlpha being false is the first
     1057        // situation we can generally see an alpha channel less than 1.0 coming out of the
     1058        // compositor. This is causing platform differences in some layout tests (see
     1059        // https://bugs.webkit.org/show_bug.cgi?id=82412), so in this situation, use a separate
     1060        // blend function for the alpha channel to avoid modifying it. Don't use colorMask for this
     1061        // as it has performance implications on some platforms.
     1062        GLC(context(), context()->blendFuncSeparate(GraphicsContext3D::SRC_ALPHA, GraphicsContext3D::ONE_MINUS_SRC_ALPHA, GraphicsContext3D::ZERO, GraphicsContext3D::ONE));
     1063    }
    10551064
    10561065    WebTransformationMatrix quadTransform = quad->quadTransform();
Note: See TracChangeset for help on using the changeset viewer.