[webkit-changes] [WebKit/WebKit] 2fed40: RemoteImageBufferProxy waits flushes in a dedicate...

Kimmo Kinnunen noreply at github.com
Fri May 19 01:40:54 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2fed4020085ce890460e9adaa800e7c01afa01b2
      https://github.com/WebKit/WebKit/commit/2fed4020085ce890460e9adaa800e7c01afa01b2
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2023-05-19 (Fri, 19 May 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h
    M Source/WebKit/Resources/Signposts/SystemTracePoints.plist
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    R Source/WebKit/WebProcess/GPU/graphics/DisplayListRecorderFlushIdentifier.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp
    M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h

  Log Message:
  -----------
  RemoteImageBufferProxy waits flushes in a dedicated work queue
https://bugs.webkit.org/show_bug.cgi?id=256694
rdar://109257081

Reviewed by Matt Woodrow.

The wait semaphore would be moved to dedicated work queue and waited
upon. When the semaphore would signal, the work queue would wake up
the possible multiple waiters. This behavior is a bit redundant.

Instead, first waiter waits on the semaphore, and subsequent waiters
query the result of the first waiter. The timeout is not exact, as
it will be at maximum the timeout of the first waiter. However, all
current waiters have the same timeout. Subsequent commits might make
this more rigorous, when the pattern will be moved to new abstraction
IPC::Fence.

Removes DisplayListRecorderFlushIdentifier, it is not useful or used.

* Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
* Source/WebKit/Resources/Signposts/SystemTracePoints.plist:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/GPU/graphics/DisplayListRecorderFlushIdentifier.h: Removed.
* Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
(WebKit::RemoteImageBufferProxyFlushFence::create):
(WebKit::RemoteImageBufferProxyFlushFence::~RemoteImageBufferProxyFlushFence):
(WebKit::RemoteImageBufferProxyFlushFence::waitFor):
(WebKit::RemoteImageBufferProxyFlushFence::forceSignal):
(WebKit::RemoteImageBufferProxyFlushFence::RemoteImageBufferProxyFlushFence):
(WebKit::RemoteImageBufferProxyFlushFence::WTF_GUARDED_BY_LOCK):
(WebKit::RemoteImageBufferProxy::RemoteImageBufferProxy):
(WebKit::RemoteImageBufferProxy::backingStoreWillChange):
(WebKit::RemoteImageBufferProxy::clearBackend):
(WebKit::RemoteImageBufferProxy::flushDrawingContext):
(WebKit::RemoteImageBufferProxy::flushDrawingContextAsync):
(WebKit::RemoteImageBufferProxy::createFlusher):
(WebKit::RemoteImageBufferProxy::prepareForBackingStoreChange):
(WebKit::RemoteImageBufferProxy::hasPendingFlush const): Deleted.
(WebKit::RemoteImageBufferProxyFlushState::waitForDidFlush): Deleted.
(WebKit::RemoteImageBufferProxyFlushState::markCompletedFlush): Deleted.
(WebKit::RemoteImageBufferProxyFlushState::identifierForCompletedFlush const): Deleted.
(WebKit::RemoteImageBufferProxyFlushState::cancel): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::lastSentFlushIdentifier const): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::RemoteRenderingBackendProxy):
(WebKit::RemoteRenderingBackendProxy::addPendingFlush): Deleted.
* Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:

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




More information about the webkit-changes mailing list