Title: [292729] trunk/Source/WebCore
Revision
292729
Author
mattwood...@apple.com
Date
2022-04-11 15:14:09 -0700 (Mon, 11 Apr 2022)

Log Message

Use unaccelerated rendering for ImageBitmapRenderingContext's placeholder image.
https://bugs.webkit.org/show_bug.cgi?id=238846

Reviewed by Simon Fraser.

This is a blank immutable image used a placeholder until a real ImageBitmap is provided, so there's
no need to allocate to allocate an accelerated IOSurface.

* html/canvas/ImageBitmapRenderingContext.cpp:
(WebCore::ImageBitmapRenderingContext::isAccelerated const):
(WebCore::ImageBitmapRenderingContext::setOutputBitmap):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (292728 => 292729)


--- trunk/Source/WebCore/ChangeLog	2022-04-11 22:03:54 UTC (rev 292728)
+++ trunk/Source/WebCore/ChangeLog	2022-04-11 22:14:09 UTC (rev 292729)
@@ -1,3 +1,17 @@
+2022-04-11  Matt Woodrow  <mattwood...@apple.com>
+
+        Use unaccelerated rendering for ImageBitmapRenderingContext's placeholder image.
+        https://bugs.webkit.org/show_bug.cgi?id=238846
+
+        Reviewed by Simon Fraser.
+
+        This is a blank immutable image used a placeholder until a real ImageBitmap is provided, so there's
+        no need to allocate to allocate an accelerated IOSurface.
+
+        * html/canvas/ImageBitmapRenderingContext.cpp:
+        (WebCore::ImageBitmapRenderingContext::isAccelerated const):
+        (WebCore::ImageBitmapRenderingContext::setOutputBitmap):
+
 2022-04-11  Jer Noble  <jer.no...@apple.com>
 
         REGRESSION(r292051-r292022): [ iOS ] media/video-object-fit.html is a constant image failure

Modified: trunk/Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp (292728 => 292729)


--- trunk/Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp	2022-04-11 22:03:54 UTC (rev 292728)
+++ trunk/Source/WebCore/html/canvas/ImageBitmapRenderingContext.cpp	2022-04-11 22:14:09 UTC (rev 292729)
@@ -36,12 +36,6 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(ImageBitmapRenderingContext);
 
-#if USE(IOSURFACE_CANVAS_BACKING_STORE)
-static RenderingMode bufferRenderingMode = RenderingMode::Accelerated;
-#else
-static RenderingMode bufferRenderingMode = RenderingMode::Unaccelerated;
-#endif
-
 std::unique_ptr<ImageBitmapRenderingContext> ImageBitmapRenderingContext::create(CanvasBase& canvas, ImageBitmapRenderingContextSettings&& settings)
 {
     auto renderingContext = std::unique_ptr<ImageBitmapRenderingContext>(new ImageBitmapRenderingContext(canvas, WTFMove(settings)));
@@ -70,7 +64,7 @@
 
 bool ImageBitmapRenderingContext::isAccelerated() const
 {
-    return bufferRenderingMode == RenderingMode::Accelerated;
+    return false;
 }
 
 void ImageBitmapRenderingContext::setOutputBitmap(RefPtr<ImageBitmap> imageBitmap)
@@ -95,8 +89,7 @@
         // only reason I can think of is toDataURL(), but that doesn't seem like
         // a good enough argument to waste memory.
 
-        // FIXME: This needs to use RenderingPurpose::Canvas to avoid accelerated buffers in the WebContent process (webkit.org/b/238846).
-        auto buffer = ImageBuffer::create(FloatSize(canvas()->width(), canvas()->height()), RenderingPurpose::Unspecified, 1, DestinationColorSpace::SRGB(), PixelFormat::BGRA8, bufferOptionsForRendingMode(bufferRenderingMode));
+        auto buffer = ImageBuffer::create(FloatSize(canvas()->width(), canvas()->height()), RenderingPurpose::Unspecified, 1, DestinationColorSpace::SRGB(), PixelFormat::BGRA8, bufferOptionsForRendingMode(RenderingMode::Unaccelerated));
         canvas()->setImageBufferAndMarkDirty(WTFMove(buffer));
 
         // 1.4. Set the output bitmap's origin-clean flag to true.
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to