[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