[webkit-changes] [WebKit/WebKit] 64b453: REGRESSION (260927 at main): CGDisplayList image buff...

Tim Horton noreply at github.com
Wed Mar 8 23:42:42 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 64b45387dcf2f1fc528028eee0aff2beee9c4f63
      https://github.com/WebKit/WebKit/commit/64b45387dcf2f1fc528028eee0aff2beee9c4f63
  Author: Tim Horton <timothy_horton at apple.com>
  Date:   2023-03-08 (Wed, 08 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp
    M Source/WebCore/platform/graphics/cg/GraphicsContextCG.h
    M Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h
    M Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm

  Log Message:
  -----------
  REGRESSION (260927 at main): CGDisplayList image buffers no longer use the correct RenderingMode
https://bugs.webkit.org/show_bug.cgi?id=253624
rdar://106452687

Reviewed by Simon Fraser.

* Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::GraphicsContextCG):
* Source/WebCore/platform/graphics/cg/GraphicsContextCG.h:
Make it possible for a client who knows its CGContext's rendering mode to specify it
up front, instead of calculating it from the context (since sometimes it is impossible
to tell given only the context -- e.g. in the case of a display list, which could be
replayed into a software or accelerated context).

* Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:
* Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.mm:
(WebKit::GraphicsContextCGDisplayList::GraphicsContextCGDisplayList):
(WebKit::CGDisplayListImageBufferBackend::create):
(WebKit::CGDisplayListImageBufferBackend::CGDisplayListImageBufferBackend):
(WebKit::m_renderingMode):
(WebKit::CGDisplayListImageBufferBackend::context):
(WebKit::CGDisplayListAcceleratedImageBufferBackend::create):
(WebKit::CGDisplayListAcceleratedImageBufferBackend::CGDisplayListAcceleratedImageBufferBackend):
Add a new CGDisplayListAcceleratedImageBufferBackend backend that just inherits everything
from CGDisplayListImageBufferBackend, but overrides the RenderingMode that the GraphicsContextCG
is created with.

* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::ensureFrontBuffer):
Create the appropriate type of CGDisplayList{Accelerated}ImageBufferBackend
based on the type of the main buffer.

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




More information about the webkit-changes mailing list