Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2fed4020085ce890460e9adaa800e7c01afa01b2 https://github.com/WebKit/WebKit/commit/2fed4020085ce890460e9adaa800e7c01afa01b2 Author: Kimmo Kinnunen <kkinnu...@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 _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes