Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 80f6e24ca1d10903db9e2c76dd6ea91249a45d9f https://github.com/WebKit/WebKit/commit/80f6e24ca1d10903db9e2c76dd6ea91249a45d9f Author: Matt Woodrow <mattwood...@apple.com> Date: 2023-07-24 (Mon, 24 Jul 2023)
Changed paths: M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp Log Message: ----------- Allocating a new IPC::Semaphore for each RemoteImageBufferProxy::flushDrawingContextAsync adds significant overhead. https://bugs.webkit.org/show_bug.cgi?id=259433 <rdar://112743547> Reviewed by Dean Jackson. Frequently we have an existing pending flush object, where the semaphore has already been signaled. This makes the m_signaled bool atomic, so that we can check for completed flush objects without taking the lock and blocking. This will still be false if the existing use of the semaphore hasn't yet been signaled, or if the waitFor call failed. If we find a completed flush objects, then moves the semaphore across into the new one to prevent a new allocation. * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp: (WebKit::RemoteImageBufferProxyFlushFence::tryTakeSemaphore): (WebKit::RemoteImageBufferProxy::flushDrawingContextAsync): (WebKit::RemoteImageBufferProxyFlushFence::WTF_GUARDED_BY_LOCK): Deleted. Canonical link: https://commits.webkit.org/266265@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes