Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ab926d67967c8bd903746ff95aaeec64fcf43fbb
https://github.com/WebKit/WebKit/commit/ab926d67967c8bd903746ff95aaeec64fcf43fbb
Author: Matt Woodrow <[email protected]>
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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes