CanvasRenderingContext2DBase tracks one dirty rect and does union of all incoming dirty rects within repaint cycle. In coordinated graphics, canvas is tiled and this unification of rects causes unnecessary invalidation of tiles which are not dirty. For example in case where canvas spans over multiple tiles and only small areas at top-left and bottom-right corners of canvas are changed. This scenario causes whole canvas and all tiles to be marked dirty because of unification of dirty areas although only top-left and bottom-right tiles are actually dirty.
In coordinated graphics tiles do dirty rect unification internally
Pull request: https://github.com/WebKit/WebKit/pull/20917
Committed 271139@main (b2410e35eca0): <https://commits.webkit.org/271139@main> Reviewed commits have been landed. Closing PR #20917 and removing active labels.
<rdar://problem/118832308>