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