Closed Bug 1520384 Opened 2 years ago Closed 2 years ago

Fix an invalidation bug and improve display list correlation.

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla66
Tracking Status
firefox66 --- fixed

People

(Reporter: gw, Assigned: gw)

Details

Attachments

(1 file)

Fix an invalidation bug and improve display list correlation.

Fixes a subtle bug which could break the invalidation logic in some cases. If the content of a tile changed while that tile was not visible, the content change would be detected correctly. However, that changed flag would not be propagated to the is_valid flag, since it's skipped by the culling check. Instead, ensure that the content change invalidates the tile even if it's off-screen for now.

Improve the display list correlation code.

Previously, the code was picking a specific number of primitives, and trying to correlate them, even if they are instanced in multiple places on the page. It's far more reliable to instead only select unique primitives (uids that only occur once) and use these for correlation display list offsets. This seems to give perfectly accurate results in every page I tested (there are probably some edge cases that can still break this logic though, to follow up on as we find them).

Assignee: nobody → gwatson
Pushed by jmuizelaar@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8cef8c45741c
Fix an invalidation bug and improve display list correlation. r=kvark
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66
You need to log in before you can comment on or make changes to this bug.