Title: [122306] trunk
- Revision
- 122306
- Author
- k...@google.com
- Date
- 2012-07-11 00:22:18 -0700 (Wed, 11 Jul 2012)
Log 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.
Modified Paths
Removed Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (122305 => 122306)
--- trunk/LayoutTests/ChangeLog 2012-07-11 07:06:39 UTC (rev 122305)
+++ trunk/LayoutTests/ChangeLog 2012-07-11 07:22:18 UTC (rev 122306)
@@ -1,3 +1,16 @@
+2012-07-11 Kenneth Russell <k...@google.com>
+
+ compositing/webgl/webgl-nonpremultiplied-blend.html is flaky on Lion
+ https://bugs.webkit.org/show_bug.cgi?id=82412
+
+ Reviewed by Adrienne Walker.
+
+ 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.
+
2012-07-11 Csaba Osztrogonác <o...@webkit.org>
gc() doesn't exist in svg/animations/dynamic-modify-attributename-crash2.svg
Modified: trunk/LayoutTests/platform/chromium/TestExpectations (122305 => 122306)
--- trunk/LayoutTests/platform/chromium/TestExpectations 2012-07-11 07:06:39 UTC (rev 122305)
+++ trunk/LayoutTests/platform/chromium/TestExpectations 2012-07-11 07:22:18 UTC (rev 122306)
@@ -2401,9 +2401,6 @@
BUGNONE SLOW WIN DEBUG : platform/chromium/virtual/gpu/fast/canvas/canvas-getImageData.html = PASS
-BUGWK55968 MAC WIN DEBUG : compositing/webgl/webgl-nonpremultiplied-blend.html = IMAGE
-BUGWK82412 LION RELEASE : compositing/webgl/webgl-nonpremultiplied-blend.html = IMAGE PASS
-
BUGWK53868 : fast/notifications/notifications-document-close-crash.html = PASS TEXT
BUGWK54051 MAC : compositing/plugins/invalidate_rect.html = TEXT
@@ -3701,9 +3698,6 @@
BUGWK89936 WIN : fast/text/atsui-kerning-and-ligatures.html = IMAGE
BUGWK89936 WIN : fast/css/text-rendering.html = IMAGE+TEXT
-// Started failing after r121267.
-BUGWK89998 SNOWLEOPARD RELEASE : compositing/webgl/webgl-nonpremultiplied-blend.html = IMAGE
-
// Started timeout between r121233:r121239.
BUGWK90003 WIN DEBUG : fast/js/repeat-cached-vm-reentry.html = TIMEOUT PASS
Deleted: trunk/LayoutTests/platform/chromium-mac/compositing/webgl/webgl-nonpremultiplied-blend-expected.png
(Binary files differ)
Modified: trunk/Source/WebCore/ChangeLog (122305 => 122306)
--- trunk/Source/WebCore/ChangeLog 2012-07-11 07:06:39 UTC (rev 122305)
+++ trunk/Source/WebCore/ChangeLog 2012-07-11 07:22:18 UTC (rev 122306)
@@ -1,3 +1,22 @@
+2012-07-11 Kenneth Russell <k...@google.com>
+
+ compositing/webgl/webgl-nonpremultiplied-blend.html is flaky on Lion
+ https://bugs.webkit.org/show_bug.cgi?id=82412
+
+ Reviewed by Adrienne Walker.
+
+ 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.
+
2012-07-10 Yoshifumi Inoue <yo...@chromium.org>
[Chromium-Windows] Implement functions for localized time format information
Modified: trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp (122305 => 122306)
--- trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp 2012-07-11 07:06:39 UTC (rev 122305)
+++ trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp 2012-07-11 07:22:18 UTC (rev 122306)
@@ -1050,8 +1050,17 @@
GLC(context(), context()->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_WRAP_S, GraphicsContext3D::CLAMP_TO_EDGE));
GLC(context(), context()->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_WRAP_T, GraphicsContext3D::CLAMP_TO_EDGE));
- if (!quad->premultipliedAlpha())
- GLC(context(), context()->blendFunc(GraphicsContext3D::SRC_ALPHA, GraphicsContext3D::ONE_MINUS_SRC_ALPHA));
+ if (!quad->premultipliedAlpha()) {
+ // As it turns out, the premultiplied alpha blending function (ONE, ONE_MINUS_SRC_ALPHA)
+ // will never cause the alpha channel to be set to anything less than 1.0 if it is
+ // initialized to that value! Therefore, premultipliedAlpha being false is the first
+ // situation we can generally see an alpha channel less than 1.0 coming out of the
+ // compositor. This is causing platform differences in some layout tests (see
+ // https://bugs.webkit.org/show_bug.cgi?id=82412), so in this situation, use a separate
+ // blend function for the alpha channel to avoid modifying it. Don't use colorMask for this
+ // as it has performance implications on some platforms.
+ GLC(context(), context()->blendFuncSeparate(GraphicsContext3D::SRC_ALPHA, GraphicsContext3D::ONE_MINUS_SRC_ALPHA, GraphicsContext3D::ZERO, GraphicsContext3D::ONE));
+ }
WebTransformationMatrix quadTransform = quad->quadTransform();
IntRect quadRect = quad->quadRect();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes