Open
Bug 730504
Opened 13 years ago
Updated 3 years ago
Runfield has bad invalidation behaviour
Categories
(Core :: Graphics, defect)
Tracking
()
NEW
People
(Reporter: jrmuizel, Unassigned)
References
Details
(Whiteboard: maple)
Currently on Maple we often invalidate runfield twice per draw call. This has a number of causes which I'll file a dependent bugs.
Reporter | ||
Comment 1•13 years ago
|
||
This was revealed by 729537 which caused the nsHTMLScrollFrame to have a display port.
Here's how it all happens:
- Canvas does not properly clip invalidations to the size of the canvas (bug 730508)
- Previously, these invalidations were clipped by the scroll port of the nsHTMLScrollFrame, but with a display port they are not.
- These invalidations outside cause us to get an invalid region that's not a rect.
- This region is split into rects and passed to nsWindow::Invalidate (bug 730509)
- Each Invalidate() call queues up a Draw event.
- Between Draw events, we can get NATIVE_POKE events in the queue (e.g. from the TimerThread)
- Draws are only coalesced if they are contiguous (bug 730515)
- Each draw will schedule a composite.
- The following draws will upload the entire unchanged canvas
- Sadness
Reporter | ||
Updated•13 years ago
|
Whiteboard: maple
Updated•3 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•