Bug 265365

Summary: [CoordinatedGraphics] Canvas 2D rendering context causes unnecessary tile invalidations
Product: WebKit Reporter: Jani Hautakangas <jani>
Component: CanvasAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: dino, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Jani Hautakangas
Reported 2023-11-27 01:37:55 PST
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.
Attachments
Jani Hautakangas
Comment 1 2023-11-27 01:44:40 PST
In coordinated graphics tiles do dirty rect unification internally
Jani Hautakangas
Comment 2 2023-11-27 01:50:17 PST
EWS
Comment 3 2023-11-27 07:02:03 PST
Committed 271139@main (b2410e35eca0): <https://commits.webkit.org/271139@main> Reviewed commits have been landed. Closing PR #20917 and removing active labels.
Radar WebKit Bug Importer
Comment 4 2023-11-27 07:03:14 PST
Note You need to log in before you can comment on or make changes to this bug.