[webkit-changes] [WebKit/WebKit] ab926d: Read remote images back into local images before s...

mattwoodrow noreply at github.com
Mon Nov 28 22:06:41 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ab926d67967c8bd903746ff95aaeec64fcf43fbb
      https://github.com/WebKit/WebKit/commit/ab926d67967c8bd903746ff95aaeec64fcf43fbb
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2022-11-28 (Mon, 28 Nov 2022)

  Changed paths:
    M Source/WebCore/html/ImageBitmap.cpp
    M Source/WebCore/html/ImageBitmapBacking.cpp
    M Source/WebCore/html/ImageBitmapBacking.h
    M Source/WebCore/html/OffscreenCanvas.cpp
    M Source/WebCore/html/OffscreenCanvas.h
    M Source/WebCore/platform/graphics/ImageBuffer.cpp
    M Source/WebCore/platform/graphics/ImageBuffer.h
    M Source/WebCore/platform/graphics/NativeImage.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h

  Log Message:
  -----------
  Read remote images back into local images before sending them to other threads.
https://bugs.webkit.org/show_bug.cgi?id=248416

Reviewed by Kimmo Kinnunen.

We currently can't use RemoteRenderingBackendProxy from other threads, so sending RemoteImageBufferProxys to other threads
leaves us in an invalid state. This reads them back into local images before transferring so that we can access the contents.

* Source/WebCore/html/ImageBitmap.cpp:
(WebCore::ImageBitmap::detachBitmaps):
(WebCore::ImageBitmap::~ImageBitmap):
* Source/WebCore/html/ImageBitmapBacking.cpp:
(WebCore::ImageBitmapBacking::takeImageBufferForDifferentThread):
* Source/WebCore/html/ImageBitmapBacking.h:
* Source/WebCore/html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::detach):
(WebCore::OffscreenCanvas::commitToPlaceholderCanvas):
(WebCore::OffscreenCanvas::takeImageBufferForDifferentThread const):
(WebCore::OffscreenCanvas::takeImageBuffer const): Deleted.
* Source/WebCore/html/OffscreenCanvas.h:
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::cloneForDifferentThread):
(WebCore::ImageBuffer::sinkIntoBufferForDifferentThread):
* Source/WebCore/platform/graphics/ImageBuffer.h:
* Source/WebCore/platform/graphics/NativeImage.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
(WebKit::RemoteImageBufferProxy::drawConsuming):
(WebKit::RemoteImageBufferProxy::sinkIntoNativeImage):
(WebKit::RemoteImageBufferProxy::sinkIntoBufferForDifferentThread):
(WebKit::RemoteImageBufferProxy::cloneForDifferentThread):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

Canonical link: https://commits.webkit.org/257103@main




More information about the webkit-changes mailing list