Closed Bug 114082 Opened 23 years ago Closed 23 years ago

the ViewManager always requests an offscreen as large as the widget

Categories

(Core Graveyard :: GFX, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla0.9.8

People

(Reporter: kmcclusk, Assigned: kmcclusk)

References

Details

(Keywords: memory-footprint, perf)

Attachments

(1 file, 1 obsolete file)

On each paint event the VM requests an offscreen as large as the widget. The VM
should request an offscreen only as large as the damaged area. 

The current code always bitblits from (0,0) and relies on setting a clip rect to
limit the bitblt to the damaged area.  This is a very inefficient use of the
offscreen. Instead, the viewmanager should request an offscreen the same size as
the damaged area and translate the rendering context to (-damage.x, -damage.y)
before rendering to the backbuffer. When copying forward the backbuffer should
be translated back to (damage.x, damage.y) to place the offscreen in the correct
position.

This bug is important to fix because IFRAMES can be given an arbitrary width and
height which forces the VM to create a backbuffer at least as large as the
IFRAMES size.

In addition, when bug 95952 is fixed this bug will become more important because
the backbuffer will be allocated/deallocated on each paint request, so making
smaller reguests will be more important.
Keywords: footprint, perf
Summary: the ViewManager always requests an offscreen as large as the widget → the ViewManager always requests an offscreen as large as the widget
Target Milestone: --- → mozilla0.9.8
Blocks: 91747
Attachment #60909 - Attachment is obsolete: true
I tested patch 61803 on WIN32, Linux, and Mac. I haven't seen any regressions. I
have between running with the patch installed on WIN32 for the last two days as
dogfood.
Status: NEW → ASSIGNED
r=dcone
Comment on attachment 61803 [details] [diff] [review]
Updated patch - which requests an offscreen the size of the damage rect.

sr=attinasi
Attachment #61803 - Flags: superreview+
Fix checked in
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: