[webkit-changes] [WebKit/WebKit] 9502f8: CG display list graphics contexts are sometimes st...

Tim Horton noreply at github.com
Thu Jan 19 03:00:24 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9502f8564a09c70c745630ae35bf1ee90bf21395
      https://github.com/WebKit/WebKit/commit/9502f8564a09c70c745630ae35bf1ee90bf21395
  Author: Tim Horton <thorton at apple.com>
  Date:   2023-01-19 (Thu, 19 Jan 2023)

  Changed paths:
    M Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm

  Log Message:
  -----------
  CG display list graphics contexts are sometimes still flipped
https://bugs.webkit.org/show_bug.cgi?id=250816
rdar://104388673

Reviewed by Dean Jackson.

* Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.mm:
(WebKit::GraphicsContextCGDisplayList::GraphicsContextCGDisplayList):
Remove the workaround introduced in r252402 at main, since we have reinstated the toplevel
context flip in 258997 at main. I missed this in 258997 at main because it only affects
cases where we end up doing setCTM(getCTM()), which is just rare enough to miss
with cursory testing.

* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::paintContents):
(WebKit::RemoteLayerBackingStore::drawInContext):
While debugging the above, I also noticed that we were leaving the display
list context with a missing trailing `restore` operation, because we encode the
display list inside drawInContext. To avoid this, move the flip inside our existing
state saver, which is popped before encoding the display list. This has no
actual effect at the moment (except making the dumped list look more correct),
but will eventually be necessary when the replayed destination context is reused.

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




More information about the webkit-changes mailing list