Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 346fdad1569da1c50564a62ee569a7f519d9cd46
      
https://github.com/WebKit/WebKit/commit/346fdad1569da1c50564a62ee569a7f519d9cd46
  Author: Matt Woodrow <mattwood...@apple.com>
  Date:   2023-08-23 (Wed, 23 Aug 2023)

  Changed paths:
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm

  Log Message:
  -----------
  RemoteLayerTreeDrawingAreaProxy needs to hold use-count for IOSurfaces until 
CA commits.
https://bugs.webkit.org/show_bug.cgi?id=260374
<rdar://112269436>

Reviewed by Simon Fraser.

CoreAnimation doesn't guarantee to have marked the IOSurface as in-use until 
the transaction is committed, not once the layer mutation happens.

This code was removed in 266557@main (rdar://111986083) with the belief that it 
was no longer necessary.

This adds it back, but replaces kCATransactionPhasePostSynchronize with 
kCATransactionPhasePostCommit.

Waiting for the synchronize phase was a performance regression, and is 
unnecessary with the latest CoreAnimation, but we
still need to wait for the commit to happen. WebKit doesn't explicitly commit 
the CoreAnimation transaction, so the implicit
transaction commit might happen significantly later, and we need to ensure that 
we continue to mark any IOSurfaces as in-use (by
retaining the wrapping mach_port) in the interim.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

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


_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to