Closed Bug 580440 Opened 11 years ago Closed 11 years ago

use native-rendering temp surfaces only as large as necessary

Categories

(Core :: Graphics, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla2.0b3

People

(Reporter: karlt, Assigned: karlt)

References

Details

(Keywords: perf)

Attachments

(1 file)

Smaller (temp) drawing surfaces mean that when a transparent plugin
invalidates a small rectangle we don't bother doing the alpha extraction over
the whole plugin rectangle.  For opaque plugins also, this means less drawing
and shorter strides between lines of drawing.

(BTW, the reason why the bounds passed to the native renderer is that of the
plugin rectangle, not the expose rectangle, is so the renderer can use the
bounds to know the maximum extents that a plugin not supporting clips might
draw if drawing directly.)
Attached patch patchSplinter Review
This also takes account of the surface size when considering clips for drawing
direct.  There is no need to clip just to keep drawing in the surface (because
it is not possible to draw outside the surface).  This could help flash videos
that are scrolled partially out of the visible rect, if the buffer rotation is
such that the edge of the visible rect is the edge of the buffer.

Another change here is that temp surfaces for opaque plugins are not cleared
before drawing.

One thing this patch doesn't do is add an expose region parameter to the
native renderer.  However, with retained layers, the clip region will often be
a good indication of the expose region.
Attachment #458834 - Flags: review?(roc)
Comment on attachment 458834 [details] [diff] [review]
patch

Requesting approval2.0:
The patch for bug 576143 is built on this.
Attachment #458834 - Flags: approval2.0?
Comment on attachment 458834 [details] [diff] [review]
patch

a=beltzner
Attachment #458834 - Flags: approval2.0? → approval2.0+
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Keywords: perf
Resolution: --- → FIXED
Target Milestone: --- → mozilla2.0b3
Depends on: 595727
Depends on: 597915
You need to log in before you can comment on or make changes to this bug.