[webkit-changes] [WebKit/WebKit] e5edae: Give WebKit-owned IOSurfaces names

Ryan Reno noreply at github.com
Thu Mar 30 09:03:47 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e5edaea039e254b86f390fe75a6b37b291b66998
      https://github.com/WebKit/WebKit/commit/e5edaea039e254b86f390fe75a6b37b291b66998
  Author: Ryan Reno <rreno at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Source/WTF/wtf/spi/cocoa/IOSurfaceSPI.h
    M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp
    M Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm
    M Source/WebCore/platform/graphics/cocoa/IOSurface.h
    M Source/WebCore/platform/graphics/cocoa/IOSurface.mm
    M Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm
    M Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp
    M Tools/DumpRenderTree/ios/PixelDumpSupportIOS.mm
    M Tools/TestWebKitAPI/Tests/WebCore/cocoa/IOSurfaceTests.mm

  Log Message:
  -----------
  Give WebKit-owned IOSurfaces names
https://bugs.webkit.org/show_bug.cgi?id=141586
rdar://problem/89791501

Reviewed by Simon Fraser.

IOSurfaces can have name metadata attached to them for tools to consume.
This change adds names to surfaces based on the RenderingPurpose they
are being created for. Additionally, surfaces which are stored in the
IOSurfacePool will update the name if a surface is being pulled from the
pool for a different purpose than it was originally created for.

* Source/WTF/wtf/spi/cocoa/IOSurfaceSPI.h:

* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::create):
* Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::allocateAndBindDisplayBufferBacking):
* Source/WebCore/platform/graphics/cocoa/IOSurface.h:
* Source/WebCore/platform/graphics/cocoa/IOSurface.mm:
(WebCore::surfaceNameToNSString):
(WebCore::IOSurface::create):
(WebCore::IOSurface::createFromImage):
(WebCore::optionsForBiplanarSurface):
(WebCore::optionsFor32BitSurface):
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::convertToFormat):
(WebCore::IOSurface::nameForRenderingPurpose):
(WebCore::operator<<):

* Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRectAfterScreenUpdates:rectInViewCoordinates:intoImageOfWidth:completionHandler:]):
* Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.cpp:
(WebKit::ImageBufferShareableMappedIOSurfaceBackend::create):

* Tools/DumpRenderTree/ios/PixelDumpSupportIOS.mm:
(createBitmapContextFromWebView):
* Tools/TestWebKitAPI/Tests/WebCore/cocoa/IOSurfaceTests.mm:
(TestWebKitAPI::TEST):

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




More information about the webkit-changes mailing list