Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 45446c5953762c13ef4ac71be91c535cd064ed24 https://github.com/WebKit/WebKit/commit/45446c5953762c13ef4ac71be91c535cd064ed24 Author: Kimmo Kinnunen <kkinnu...@apple.com> Date: 2023-09-26 (Tue, 26 Sep 2023)
Changed paths: M LayoutTests/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/compositing/canvas/accelerated-canvas-compositing-size-limit.html R LayoutTests/compositing/canvas/accelerated-small-canvas-compositing-expected.txt R LayoutTests/compositing/canvas/accelerated-small-canvas-compositing.html M LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt M LayoutTests/platform/ios/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/platform/ios/fast/canvas/image-buffer-backend-variants-expected.txt A LayoutTests/platform/mac-wk1/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/platform/mac-wk1/fast/canvas/image-buffer-backend-variants-expected.txt M LayoutTests/platform/mac-wk2/TestExpectations R LayoutTests/platform/mac-wk2/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt M LayoutTests/platform/wincairo/TestExpectations M Source/WebCore/html/CanvasBase.cpp M Source/WebCore/html/CanvasBase.h M Source/WebCore/page/Chrome.cpp M Source/WebCore/page/Chrome.h M Source/WebCore/page/ChromeClient.h M Source/WebCore/page/Settings.yaml M Source/WebCore/platform/GraphicsClient.h M Source/WebCore/platform/graphics/ImageBuffer.cpp M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm M Source/WebKit/Shared/WebImage.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h M Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.h M Source/WebKit/WebProcess/WebPage/wc/DrawingAreaWC.cpp Log Message: ----------- Big drop in canvas performance above 3840px https://bugs.webkit.org/show_bug.cgi?id=236173 rdar://88536159 Reviewed by Simon Fraser. Limiting the accelerted canvas 2d context to arbitrary 5120*2880 is not useful. The performance difference gets more beneficial to hardware rasterization the higher the resolution. The limit did not protect against hitting hardware rasterization limits, since the limits are always per dimension, not per area. As per above, capping based on any upper limit is not useful. Thus remove the upper limit. Reuse the unused lower limit as the trigger. The lower limit is justified, as very small areas might be useful to rasterize with CPU. Start the limit at 0, to match the previous behavior. The hardware acceleration limits are checked in the respective ImageBufferBackends, e.g. ImageBufferIOSurfaceBackend::calculateSafeSize. This is done in WP for both GPUP mode and in-process mode. Both will fall back to Unaccelerated. Changes the RemoteRenderingBackend::createImageBuffer() to use buffer options instead of rendering mode. The the buffer options may be honored, but rendering mode would imply that it must be honored. Later on when the rendering mode is more policy based on rendering purpose, this is more clear. * LayoutTests/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: * LayoutTests/compositing/canvas/accelerated-canvas-compositing-size-limit.html: * LayoutTests/compositing/canvas/accelerated-small-canvas-compositing-expected.txt: Removed. * LayoutTests/compositing/canvas/accelerated-small-canvas-compositing.html: Removed. * LayoutTests/fast/canvas/image-buffer-backend-variants-expected.txt: * LayoutTests/platform/ios/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Removed. * LayoutTests/platform/ios/fast/canvas/image-buffer-backend-variants-expected.txt: * LayoutTests/platform/mac-wk1/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Added. * LayoutTests/platform/mac-wk1/fast/canvas/image-buffer-backend-variants-expected.txt: * LayoutTests/platform/mac-wk2/TestExpectations: * LayoutTests/platform/mac-wk2/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Removed. * LayoutTests/platform/wincairo/TestExpectations: * Source/WebCore/html/CanvasBase.cpp: (WebCore::CanvasBase::shouldAccelerate const): (WebCore::CanvasBase::allocateImageBuffer const): * Source/WebCore/html/CanvasBase.h: * Source/WebCore/page/Settings.yaml: Canonical link: https://commits.webkit.org/268440@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes