Bug 265199 - [CoordinatedGraphics] Remove unnecessary dirty rect merges in CoordinatedGraphicsLayer
Summary: [CoordinatedGraphics] Remove unnecessary dirty rect merges in CoordinatedGrap...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WPE WebKit (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-21 08:53 PST by Jani Hautakangas
Modified: 2023-11-22 01:50 PST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jani Hautakangas 2023-11-21 08:53:26 PST
CoordinatedGraphicsLayer holds list of dirty rects up to 32 entries. If there are more dirty markings in between layer commits then rects exceeding 32 entry limit are unified and merged into list entry index 0. In the worst case this leads to unnecessary invalidation of whole layer. For example in case where layer spans over multiple tiles and there are 32 invalidation on top left corner of the layer and then invalidation number 33 is at bottom right corner. This invalidates whole layer and all tiles in the layer although only top left and bottom right tiles are invalid in reality. In addition to this there's already dirty rect tracking per tile where dirty rects get unified and merged within tile.
Comment 1 Jani Hautakangas 2023-11-21 09:04:59 PST
Pull request: https://github.com/WebKit/WebKit/pull/20791
Comment 2 EWS 2023-11-22 01:49:50 PST
Committed 271045@main (4c635a96d441): <https://commits.webkit.org/271045@main>

Reviewed commits have been landed. Closing PR #20791 and removing active labels.