[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