Title: [263297] trunk
Revision
263297
Author
commit-qu...@webkit.org
Date
2020-06-19 17:00:02 -0700 (Fri, 19 Jun 2020)

Log Message

[CG] REGRESSION (r256892): Luminance SVG mask is not applied when accelerated drawing is enabled
https://bugs.webkit.org/show_bug.cgi?id=213403
<rdar://problem/64489419>

Patch by Said Abou-Hallawa <sabouhall...@apple.com> on 2020-06-19
Reviewed by Simon Fraser.

Source/WebCore:

Test: svg/masking/mask-css-luminance.html

If the ImageBuffer is backed by an IOSurface, its context has to be flushed
out before convertToLuminanceMask() can access its data.

* platform/graphics/ConcreteImageBuffer.h:

LayoutTests:

* svg/masking/mask-css-luminance-expected.html: Added.
* svg/masking/mask-css-luminance.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (263296 => 263297)


--- trunk/LayoutTests/ChangeLog	2020-06-19 23:40:04 UTC (rev 263296)
+++ trunk/LayoutTests/ChangeLog	2020-06-20 00:00:02 UTC (rev 263297)
@@ -1,3 +1,14 @@
+2020-06-19  Said Abou-Hallawa  <sabouhall...@apple.com>
+
+        [CG] REGRESSION (r256892): Luminance SVG mask is not applied when accelerated drawing is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=213403
+        <rdar://problem/64489419>
+
+        Reviewed by Simon Fraser.
+
+        * svg/masking/mask-css-luminance-expected.html: Added.
+        * svg/masking/mask-css-luminance.html: Added.
+
 2020-06-19  Diego Pino Garcia  <dp...@igalia.com>
 
         [GLIB] Unreviewed test gardening. Update test expectations after r263268.

Added: trunk/LayoutTests/svg/masking/mask-css-luminance-expected.html (0 => 263297)


--- trunk/LayoutTests/svg/masking/mask-css-luminance-expected.html	                        (rev 0)
+++ trunk/LayoutTests/svg/masking/mask-css-luminance-expected.html	2020-06-20 00:00:02 UTC (rev 263297)
@@ -0,0 +1,10 @@
+<style>
+    .box-with-hole {
+        height: 100;
+        width: 100px;
+        border: 50px solid green;
+    }
+</style>
+<body>
+    <div class="box-with-hole"></div>
+</body>

Added: trunk/LayoutTests/svg/masking/mask-css-luminance.html (0 => 263297)


--- trunk/LayoutTests/svg/masking/mask-css-luminance.html	                        (rev 0)
+++ trunk/LayoutTests/svg/masking/mask-css-luminance.html	2020-06-20 00:00:02 UTC (rev 263297)
@@ -0,0 +1,15 @@
+<style>
+    .box-with-hole {
+        height: 200px;
+        width: 200px;
+        background-color: green;
+        -webkit-mask: url('data:image/svg+xml;utf8, \
+            <svg viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg"> \
+                <rect width="100%" height="100%" fill="white"/> \
+                <rect x="25%" y="25%" width="50%" height="50%" fill="black"/> \
+            </svg>') luminance no-repeat;
+    }
+</style>
+<body>
+    <div class="box-with-hole"></div>
+</body>

Modified: trunk/Source/WebCore/ChangeLog (263296 => 263297)


--- trunk/Source/WebCore/ChangeLog	2020-06-19 23:40:04 UTC (rev 263296)
+++ trunk/Source/WebCore/ChangeLog	2020-06-20 00:00:02 UTC (rev 263297)
@@ -1,3 +1,18 @@
+2020-06-19  Said Abou-Hallawa  <sabouhall...@apple.com>
+
+        [CG] REGRESSION (r256892): Luminance SVG mask is not applied when accelerated drawing is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=213403
+        <rdar://problem/64489419>
+
+        Reviewed by Simon Fraser.
+
+        Test: svg/masking/mask-css-luminance.html
+
+        If the ImageBuffer is backed by an IOSurface, its context has to be flushed
+        out before convertToLuminanceMask() can access its data.
+
+        * platform/graphics/ConcreteImageBuffer.h:
+
 2020-06-19  Chris Dumez  <cdu...@apple.com>
 
         Avoid initializing RenderTheme singleton unnecessarily in the UIProcess

Modified: trunk/Source/WebCore/platform/graphics/ConcreteImageBuffer.h (263296 => 263297)


--- trunk/Source/WebCore/platform/graphics/ConcreteImageBuffer.h	2020-06-19 23:40:04 UTC (rev 263296)
+++ trunk/Source/WebCore/platform/graphics/ConcreteImageBuffer.h	2020-06-20 00:00:02 UTC (rev 263297)
@@ -180,7 +180,7 @@
     void convertToLuminanceMask() override
     {
         if (auto* backend = ensureBackendCreated()) {
-            flushDrawingContext();
+            flushContext();
             backend->convertToLuminanceMask();
         }
     }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to