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: