Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f77323c9d2ad5455d94e42560ef4bdf89c0c9414
      
https://github.com/WebKit/WebKit/commit/f77323c9d2ad5455d94e42560ef4bdf89c0c9414
  Author: Kimmo Kinnunen <kkinnu...@apple.com>
  Date:   2023-09-28 (Thu, 28 Sep 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/ImageBuffer.cpp
    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/ImageBufferBackendParameters.h
    M 
Source/WebCore/platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp
    M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp
    M Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h
    M Source/WebCore/platform/graphics/cg/IOSurfaceImageBuffer.h
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h
    M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp
    M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/Scripts/webkit/messages.py
    M 
Source/WebKit/Shared/RemoteLayerTree/DynamicContentScalingImageBufferBackend.h
    M 
Source/WebKit/Shared/RemoteLayerTree/DynamicContentScalingImageBufferBackend.mm
    M Source/WebKit/Shared/UserData.cpp
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/Shared/WebImage.cpp
    M Source/WebKit/Shared/WebImage.h
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M 
Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp
    M Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
    M 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp
    M 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h
    M 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp
    M 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h

  Log Message:
  -----------
  ImageBuffer::backendSize() waits for GPUP to create the backend
https://bugs.webkit.org/show_bug.cgi?id=262179
rdar://116117019

Reviewed by Matt Woodrow.

The backend size is not backend logic, it is same for all backends.
Move the backend size calculation to ImageBuffer.

The logical size is not a ImageBufferBackend parameter, it is a ImageBuffer
parameter. Store the backend size in ImageBufferBackendParameters.

Use the new struct ImageBufferParameters when client code is communicating
parameters with the use-case of creating new ImageBuffer instances in
WebImage and RemoteSerializedImageBufferProxy.

Fixes a case where RemoteImageBufferProxy would wait for the GPUP
to send the image buffer handle to WP. This is not needed, the backend
size is always known.

Later commits will simplify other properties in ImageBufferBackend that
are not backend-dependent.

* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::calculateBackendSize):
(WebCore::ImageBuffer::backendParameters):
(WebCore::ImageBuffer::backendSize const): Deleted.
* Source/WebCore/platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::create):
(WebCore::ImageBuffer::backendSize const):
(WebCore::ImageBuffer::parameters const):
* Source/WebCore/platform/graphics/ImageBufferBackend.cpp:
(WebCore::ImageBufferBackend::convertToLuminanceMask):
(WebCore::ImageBufferBackend::getPixelBuffer):
(WebCore::ImageBufferBackend::putPixelBuffer):
(WebCore::ImageBufferBackend::calculateBaseTransform):
(WebCore::ImageBufferBackend::calculateBackendSize): Deleted.
* Source/WebCore/platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::size const):
(WebCore::ImageBufferBackend::pixelFormat const):
(WebCore::ImageBufferBackend::backendSize const): Deleted.
(WebCore::ImageBufferBackend::logicalSize const): Deleted.
(WebCore::ImageBufferBackend::renderingPurpose const): Deleted.
(WebCore::ImageBufferBackend::logicalRect const): Deleted.
(WebCore::ImageBufferBackend::backendRect const): Deleted.
* Source/WebCore/platform/graphics/ImageBufferBackendParameters.h:
* Source/WebCore/platform/graphics/PlatformImageBuffer.h:
* 
Source/WebCore/platform/graphics/cairo/ImageBufferCairoImageSurfaceBackend.cpp:
(WebCore::ImageBufferCairoImageSurfaceBackend::calculateSafeBackendSize):
(WebCore::ImageBufferCairoImageSurfaceBackend::calculateMemoryCost):
(WebCore::ImageBufferCairoImageSurfaceBackend::bytesPerRow const):
* Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.cpp:
(WebCore::ImageBufferCairoSurfaceBackend::backendSize const): Deleted.
* Source/WebCore/platform/graphics/cairo/ImageBufferCairoSurfaceBackend.h:
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:
(WebCore::ImageBufferCGBitmapBackend::calculateSafeBackendSize):
(WebCore::ImageBufferCGBitmapBackend::calculateMemoryCost):
(WebCore::ImageBufferCGBitmapBackend::bytesPerRow const):
(WebCore::ImageBufferCGBitmapBackend::createNativeImageReference):
(WebCore::ImageBufferCGBitmapBackend::backendSize const): Deleted.
* Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h:
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::calculateSafeBackendSize):
(WebCore::ImageBufferIOSurfaceBackend::calculateMemoryCost):
(WebCore::ImageBufferIOSurfaceBackend::backendSize const): Deleted.
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::isSmallLayerBacking):
* Source/WebKit/Scripts/webkit/messages.py:
(headers_for_type):
* 
Source/WebKit/Shared/RemoteLayerTree/DynamicContentScalingImageBufferBackend.h:
* 
Source/WebKit/Shared/RemoteLayerTree/DynamicContentScalingImageBufferBackend.mm:
(WebKit::GraphicsContextDynamicContentScaling::GraphicsContextDynamicContentScaling):
(WebKit::DynamicContentScalingImageBufferBackend::calculateMemoryCost):
(WebKit::DynamicContentScalingImageBufferBackend::create):
(WebKit::DynamicContentScalingImageBufferBackend::context):
(WebKit::DynamicContentScalingImageBufferBackend::bytesPerRow const):
(WebKit::DynamicContentScalingAcceleratedImageBufferBackend::create):
(WebKit::DynamicContentScalingImageBufferBackend::backendSize const): Deleted.
* Source/WebKit/Shared/UserData.cpp:
(WebKit::UserData::decode):
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebImage.cpp:
(WebKit::WebImage::create):
(WebKit::WebImage::parameters const):
* Source/WebKit/Shared/WebImage.h:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didGetImageForFindMatch):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:
(WebKit::ImageBufferShareableBitmapBackend::calculateSafeBackendSize):
(WebKit::ImageBufferShareableBitmapBackend::calculateMemoryCost):
(WebKit::ImageBufferShareableBitmapBackend::backendSize const): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):
(WebKit::RemoteImageBufferProxy::didCreateBackend):
(WebKit::RemoteImageBufferProxy::sinkIntoSerializedImageBuffer):
(WebKit::RemoteSerializedImageBufferProxy::RemoteSerializedImageBufferProxy):
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::create):
* 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:
(WebKit::ImageBufferRemoteIOSurfaceBackend::bytesPerRow const):
(WebKit::ImageBufferRemoteIOSurfaceBackend::backendSize const): Deleted.
* 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:
* 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.cpp:
(WebKit::ImageBufferShareableMappedIOSurfaceBitmapBackend::backendSize const): 
Deleted.
* 
Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBitmapBackend.h:

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to