[webkit-changes] [WebKit/WebKit] a73d5e: Add logging for remote rendering buffer swapping

Simon Fraser noreply at github.com
Sat Mar 18 08:39:50 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a73d5e722266ced478f3443567cb7210b3619b0e
      https://github.com/WebKit/WebKit/commit/a73d5e722266ced478f3443567cb7210b3619b0e
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-03-18 (Sat, 18 Mar 2023)

  Changed paths:
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/graphics/ImageBuffer.cpp
    M Source/WebCore/platform/graphics/ImageBuffer.h
    A Source/WebCore/platform/graphics/RenderingMode.cpp
    M Source/WebCore/platform/graphics/RenderingMode.h
    M Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.cpp
    M Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/Platform/Logging.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm
    M Source/WebKit/Sources.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    A Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.cpp
    M Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp

  Log Message:
  -----------
  Add logging for remote rendering buffer swapping
https://bugs.webkit.org/show_bug.cgi?id=254091
rdar://106875525

Reviewed by Tim Horton.

Add a WebKit "RemoteLayerBuffers" log channel, subsuming RemoteRenderingBufferVolatility logging. Use this
log channel to show information about the buffer swapping done under RemoteRenderingBackendProxy::prepareBuffersForDisplay().

Have RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay() return an enum for easier logging of the reason for display.

Make ImageBuffer loggable, via a virtual `debugDescription()` function that in future subclasses can override to show more info,
and make some related enum types loggable.

Fix some issues caused by unified sources reshuffling.

* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::debugDescription const):
(WebCore::operator<<):
* Source/WebCore/platform/graphics/ImageBuffer.h:
* Source/WebCore/platform/graphics/RenderingMode.cpp: Copied from Source/WebCore/platform/graphics/RenderingMode.h.
(WebCore::operator<<):
* Source/WebCore/platform/graphics/RenderingMode.h:
* Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.cpp:
* Source/WebCore/platform/graphics/cocoa/UnrealizedCoreTextFont.h:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::prepareLayerBuffersForDisplay):
(WebKit::RemoteRenderingBackend::markSurfacesVolatile):
* Source/WebKit/Platform/Logging.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::needsDisplay const):
(WebKit::RemoteLayerBackingStore::prepareToDisplay):
(WebKit::RemoteLayerBackingStore::prepareBuffers):
(WebKit::RemoteLayerBackingStore::paintContents):
(WebKit::RemoteLayerBackingStore::takePendingFlushers):
(WebKit::operator<<):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStoreCollection.mm:
(WebKit::RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay const):
(WebKit::RemoteLayerBackingStoreCollection::willFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::markAllBackingStoreVolatileFromTimer):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreNeedsDisplay): Deleted.
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithRemoteRenderingBackingStoreCollection.mm:
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay const):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::markBackingStoreVolatileAfterReachabilityChange):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::tryMarkAllBackingStoreVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::markAllBackingStoreVolatileFromTimer):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::sendMarkBuffersVolatile):
(WebKit::RemoteLayerWithRemoteRenderingBackingStoreCollection::backingStoreNeedsDisplay): Deleted.
* Source/WebKit/Sources.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.cpp: Copied from Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.h.
(WebKit::operator<<):
* Source/WebKit/WebProcess/GPU/graphics/PrepareBackingStoreBuffersData.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::prepareBuffersForDisplay):
* Source/WebKit/WebProcess/WebPage/EventDispatcher.cpp:

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




More information about the webkit-changes mailing list