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

Reply via email to