[webkit-changes] [WebKit/WebKit] af6077: Remove ImageBufferBackend specific isOriginAtBotto...

Kimmo Kinnunen noreply at github.com
Wed May 8 04:45:50 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: af6077a91bf70410b102ca95b0fdf0f35245a163
      https://github.com/WebKit/WebKit/commit/af6077a91bf70410b102ca95b0fdf0f35245a163
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2024-05-08 (Wed, 08 May 2024)

  Changed paths:
    M Source/WebCore/platform/graphics/ImageBuffer.h
    M Source/WebCore/platform/graphics/ImageBufferBackend.cpp
    M Source/WebCore/platform/graphics/ImageBufferBackend.h
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h
    M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h

  Log Message:
  -----------
  Remove ImageBufferBackend specific isOriginAtBottomLeftCorner
https://bugs.webkit.org/show_bug.cgi?id=273676
rdar://127480089

Reviewed by Simon Fraser.

GraphicsContext has its origin at the top left corner. Currently Cocoa
CG is the only one using
ImageBufferBackendSubclass::originAtBottomLeftCorner == true. Currently
Cocoa does not have any other GraphicsContexts than CG. Hardcode the
logic into ImageBufferBackend. This way the base transform can be
computed without knowing which type backend is. This is needed for
RemoteImageBufferProxy construction, where the backend, currently, is
obtained only after GPUP has decided which backend worked.

This is work towards removeing the
RemoteImageBufferProxy::create<Backend> template parameter. That is work
towards being able to fix deadlocks wrt. cross-thread ImageBuffer use in
GPUP.

* Source/WebCore/platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::populateBackendInfo):
* Source/WebCore/platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::calculateBaseTransform):
* Source/WebCore/platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::originAtBottomLeftCorner const): Deleted.
* Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:
(WebCore::ImageBufferCGBackend::applyBaseTransform const):
(WebCore::ImageBufferCGBackend::originAtBottomLeftCorner const): Deleted.
* Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createDisplayListRecorder):
* Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h:

Canonical link: https://commits.webkit.org/278505@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list