[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