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

Reply via email to