WebRender update/scissor rects sometimes exceed the valid rects.
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox131 | --- | fixed |
People
(Reporter: bradwerth, Assigned: bradwerth)
References
Details
Attachments
(1 file)
As evidenced by the release assert in Bug 1817691, WebRender sometimes sends an update rect that is outside the bounds of a layer's valid rect. Logging indicates that these update rects are one pixel too large, indicating there's a rounding error somewhere in WR. WR attempts to ensure this in take_context
, but clamps rects before transforming and rounding them, potentially leading this problem.
This is probably harmless, but platforms like the macOS layer manager might try to do optimization based on the assumption that the update rect is contained within the valid rect.
Assignee | ||
Comment 1•6 months ago
|
||
This is an extra-double-sure clipping of the scissor rect to the valid
rect. This shouldn't matter since the dirty rect is clipped before the
creation of either of the other two rects, but will ensure that rounding
issues from the application of the transform in get_surface_rect
won't
leave us with an out-of-bounds scissor rect.
Description
•