Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 83d967c4920fe7d5eaeb957ddc5e2e236abce6a2
https://github.com/WebKit/WebKit/commit/83d967c4920fe7d5eaeb957ddc5e2e236abce6a2
Author: Kimmo Kinnunen <[email protected]>
Date: 2023-11-20 (Mon, 20 Nov 2023)
Changed paths:
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h
Log Message:
-----------
2D Context get/putImageData cache copies cached image data twice
https://bugs.webkit.org/show_bug.cgi?id=264927
rdar://118497211
Reviewed by Cameron McCormack.
Store the PixelBuffer that was used for putImageData,
avoid copying the the ImageData redundantly.
Instead of copying during caching, copy with premultiply.
This way we omit one memcpy for caching and one premultiply for the real
putImageData.
To simplify the implementation, removes the conservative approach
where the caching would kick in at 3rd putImageData. Just cache
the first.
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::cacheImageDataIfPossible):
(WebCore::CanvasRenderingContext2DBase::takeCachedImageDataIfPossible const):
(WebCore::CanvasRenderingContext2DBase::putImageData):
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.h:
Canonical link: https://commits.webkit.org/270975@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes