Closed Bug 1818540 Opened 2 years ago Closed 2 years ago

Find and fix rounding errors in WebRender update int regions, remove runtime asserts in NativeLayerCA.

Categories

(Core :: Graphics: WebRender, defect, P3)

defect

Tracking

()

RESOLVED WONTFIX

People

(Reporter: bradwerth, Assigned: bradwerth)

References

Details

Judging by the asserts hit in Bug 1817691, It appears that WebRender is providing off-by-one dirtyRects in RenderCompositorNativeOGL::Bind. The dirty rects are leaving NativeLayerCA invalid region tracking with one-pixel tall or wide regions, which trip the asserts. There's no evidence that WebRender is sending bad pixels, but the asserts are runtime asserts and have a runtime cost.

Find and fix the rounding error and remove the runtime asserts in NativeLayerCA.

Further up the callstack to RenderCompositorNativeOGL::Bind, we'll be passing through wr_compositor_bind. That is the culprit point of entry for a badly-rounded int device rect or int update rect. Just leaving a note here for when we try to solve this.

The runtime asserts are removed, and we were never able to find a case where any off-by-one rounding errors were leading to the display of bad pixels. This is all probably fine.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.