Open Bug 1762021 Opened 4 years ago Updated 2 years ago

Bad macOS SurfacePool behavior when IOSurfaces are "in use" over multiple frames

Categories

(Core :: Graphics: WebRender, enhancement)

All
macOS
enhancement

Tracking

()

People

(Reporter: mstange, Unassigned)

References

(Blocks 1 open bug)

Details

This profile has a lot of "Evict" and "Create" markers: https://share.firefox.dev/36yvYQq

The SurfacePool has a policy of keeping only up to 20 unused surfaces at the end of the frame. This profile was recorded with a window size of 6720x3574 and a full-window animation, which requires 49 layers to be painted every frame. And the rendering was GPU intensive such that the IOSurfaces remained "in use" for multiple frames.

We should tweak the SurfacePool eviction behavior to handle this case better. For example, we could keep unused surfaces around for up to 3 frames. Or we could limit the number of surfaces we evict each frame.

Type: defect → enhancement
Severity: -- → N/A
Blocks: wr-todos
You need to log in before you can comment on or make changes to this bug.