Closed Bug 994556 Opened 11 years ago Closed 3 years ago

Restrict compositing to the invalid region for intermediate surfaces

Categories

(Core :: Graphics: Layers, defect)

29 Branch
x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: mattwoodrow, Unassigned)

References

(Blocks 1 open bug)

Details

BasicCompositor current tries to restrict drawing to the invalid region (modulo bug 994088), but it doesn't do anything when a ContainerLayer creates an intermediate surface. BasicLayerManager does all drawing in device-space, and uses the same clip as the real destination. This means we can restrict the size of the temporary surface to what will actually be needed, and avoid drawing unnecessary pixels to it. The Compositor API makes this really hard, since we lose all information about the tree structure of layers (quite intentionally). All we get is the new surface to redirect drawing to, and no information about how it relates to our default destination. I think we'd need ContainerLayerComposite to compute the invalid region relative to itself (LayerManagerComposite has the area relative to the root), and use this when create the temporary surface.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.