Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 40ecc82d81c30df348048138b0d54c8fc677bb72
https://github.com/WebKit/WebKit/commit/40ecc82d81c30df348048138b0d54c8fc677bb72
Author: Kimmo Kinnunen <[email protected]>
Date: 2023-03-06 (Mon, 06 Mar 2023)
Changed paths:
M Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp
M Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp
Log Message:
-----------
ImageBufferIOSurfaceBackend bitmap draws spend time maintaining the color
conversion cache
https://bugs.webkit.org/show_bug.cgi?id=253151
rdar://106082568
Reviewed by Simon Fraser.
When drawing small GPUP IOSurface canvases to WP small bitmap layer tiles,
the tiles would have display colorspace. The CG bitmap draw would do color
matching.
The color matching conversion result for the source image would be
stored in a cache inside CG.
This cache is redundant, as we cannot currently hold on to the
bitmap CGImages created from GPUP IOSurfaces. This would mean that the
cache was maintained redundantly, as each image would be a new one
and the cache would not see any hits.
Mark the bitmap images as transient to avoid the cache, rather color
match during blit to the layer bitmap.
Also avoid putting any transient bitmaps into GraphicsContextCG
subimage cache, for consistency.
* Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContextCG::drawNativeImageInternal):
* Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::copyNativeImageForDrawing):
Canonical link: https://commits.webkit.org/261309@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes