Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 39d4937cd4642e7f170a9e38b7f69d2fb07aaa26
https://github.com/WebKit/WebKit/commit/39d4937cd4642e7f170a9e38b7f69d2fb07aaa26
Author: Tim Horton <[email protected]>
Date: 2024-02-08 (Thu, 08 Feb 2024)
Changed paths:
M
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm
Log Message:
-----------
REGRESSION (271747@main): UI-side compositing repaint is broken with DOMGPUP
off
https://bugs.webkit.org/show_bug.cgi?id=268968
Reviewed by Simon Fraser.
*
Source/WebKit/Shared/RemoteLayerTree/RemoteLayerWithInProcessRenderingBackingStore.mm:
(WebKit::RemoteLayerWithInProcessRenderingBackingStore::createContextAndPaintContents):
If DOMGPUP is off and UI-side compositing is on, we use
RemoteLayerWithInProcessRenderingBackingStore.
This is an uncommon situation to be in; as far as I have been able to determine,
it requires changing default settings on all platforms (turning off DOMGPUP on
macOS or iOS,
or turning off dynamic content scaling on visionOS, which happens to
accidentally work around this).
The code to apply clipping for partial repaint was hoisted out of
RemoteLayerBackingStore
in 271747@main, and sadly was also hoisted past the GraphicsContextStateSaver
that would result in it not persisting forever. Thus, clips end up
*accumulating*,
breaking partial repaint.
Put an extra GraphicsContextStateSaver above the clipping.
Canonical link: https://commits.webkit.org/274312@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes