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

Reply via email to