Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a76cf096e26a991fd54bbffbad5b828a2bf368b3 https://github.com/WebKit/WebKit/commit/a76cf096e26a991fd54bbffbad5b828a2bf368b3 Author: Kimmo Kinnunen <kkinnu...@apple.com> Date: 2023-09-21 (Thu, 21 Sep 2023)
Changed paths: M LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt M LayoutTests/platform/ios/fast/canvas/image-buffer-backend-variants-expected.txt A LayoutTests/platform/mac-wk1/fast/canvas/image-buffer-backend-variants-expected.txt M Source/WebCore/Headers.cmake M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp M Source/WebCore/platform/graphics/ImageBuffer.cpp A Source/WebCore/platform/graphics/NullImageBufferBackend.cpp A Source/WebCore/platform/graphics/NullImageBufferBackend.h M Source/WebCore/platform/graphics/PixelBuffer.h M Source/WebCore/platform/graphics/cg/PathCG.h M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp Log Message: ----------- RemoteImageBufferProxy re-populates backend info after getting the backend handle https://bugs.webkit.org/show_bug.cgi?id=261027 rdar://114816328 Reviewed by Matt Woodrow. The code is structured as if it would make sense that Caller calls * RemoteImageBufferProxy::create<AcceleratedImageBufferShareableMappedBackend> * GPUP sends ShareableBitmap::Handle It is better that the backend type being used during ImageBuffer creation is respected during didCreateBackend. Implements error handling for cases where the allocation fails in GPUP. Before, the allocation failure would result in WP hang. This is work towards being able to create the backend during construction, so that most operations needing the backend would not block until the handle has been communicated. * LayoutTests/fast/canvas/image-buffer-iosurface-disabled-expected.txt: * LayoutTests/fast/canvas/image-buffer-iosurface-disabled.html: Fix the test to ensure that the tested command, creating too big accelerated image buffer, would reach the GPUP within the test. Otherwise, failing to do so would result in failure of the next test, as this test would finish before its commands were run on GPUP. Next test is typically fast/canvas/image-object-in-canvas.html. * Source/WebCore/platform/graphics/ImageBuffer.cpp: (WebCore::ImageBuffer::getPixelBuffer const): (WebCore::ImageBuffer::putPixelBuffer): * Source/WebCore/platform/graphics/ImageBufferBackend.h: (WebCore::ImageBufferBackend::toBackendCoordinates const): Deleted. * Source/WebCore/platform/graphics/PixelBuffer.h: * Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp: (WebCore::ImageBufferCairoSurfaceBackend::putPixelBuffer): * Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h: (WebKit::RemoteDisplayListRecorder::create): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::RemoteRenderingBackend::didFailCreateImageBuffer): (WebKit::RemoteRenderingBackend::didCreateImageBuffer): (WebKit::RemoteRenderingBackend::createImageBuffer): (WebKit::RemoteRenderingBackend::releaseImageBuffer): * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h: * Source/WebKit/Scripts/webkit/messages.py: (types_that_must_be_moved): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxy::didCreateBackend): (WebKit::RemoteImageBufferProxy::getPixelBuffer const): * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.messages.in: * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::createImageBuffer): Canonical link: https://commits.webkit.org/268244@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes