Closed Bug 41134 Opened 25 years ago Closed 24 years ago

Entire image redraws each time new rows are rendered

Categories

(Core :: Layout, defect, P3)

defect

Tracking

()

VERIFIED FIXED
mozilla0.9

People

(Reporter: sfraser_bugs, Assigned: kmcclusk)

References

Details

(Keywords: perf, Whiteboard: [nsbeta3-])

Attachments

(2 files)

When loading large images with double buffering turned off (in the view manager), notice that each time a new part of the image is drawn as the image streams in, we refresh the entire image. This seems to be a regression in nsFrameImageLoader::DamageRepairFrames(), which now ignores the aDamageRect in the case where we have a frame. This regressed when fixing a bug with tiled images. Note that I previously posted a couple of patches for nsImageFrame and Mac GFX code in bug 1248 which may also need to be checked in to have this progressive image rendering finally work in an efficient way.
Add perf keyword
Keywords: perf
This diff seems to fix the problem: Index: nsFrameImageLoader.cpp =================================================================== RCS file: /cvsroot/mozilla/layout/base/src/nsFrameImageLoader.cpp,v retrieving revision 1.55 diff -w -c -1 -r1.55 nsFrameImageLoader.cpp *** nsFrameImageLoader.cpp 2000/05/13 01:38:39 1.55 --- nsFrameImageLoader.cpp 2000/05/31 22:36:49 *************** *** 581,582 **** --- 581,585 ---- bounds.x = bounds.y = 0; + + if (aDamageRect) + bounds.IntersectRect(*aDamageRect, bounds); } It reduces rendering time for a large image from about 19 secs to 14 secs.
Status: NEW → ASSIGNED
Target Milestone: --- → M17
Nominating for nsbeta3.
Keywords: nsbeta3
Summary: Entire image redraws each time new rows are rendered → [FIX]Entire image redraws each time new rows are rendered
Summary: [FIX]Entire image redraws each time new rows are rendered → [HAVEFIX]Entire image redraws each time new rows are rendered
Whiteboard: nsbeta3+ will apply patch and re-evaluate if patch does not work
Marking nsbeta3+
Whiteboard: nsbeta3+ will apply patch and re-evaluate if patch does not work → [nsbeta3+] will apply patch and re-evaluate if patch does not work
Checking in this patch will undo the fix that was put in for bug 36811. There is a detailed description of what needs to be done to fix both this performance issue and keep tiled background images working in bug 36811. Making nsbeta3-, Marking it future, Removing [HAVEPATCH], Reassigning to dcone Cleared: "will apply patch and re-evaluate if patch does not work" from status
Assignee: kmcclusk → dcone
Status: ASSIGNED → NEW
Summary: [HAVEFIX]Entire image redraws each time new rows are rendered → Entire image redraws each time new rows are rendered
Whiteboard: [nsbeta3+] will apply patch and re-evaluate if patch does not work → [nsbeta3-]
Target Milestone: M17 → Future
Status: NEW → ASSIGNED
*** Bug 43943 has been marked as a duplicate of this bug. ***
Blocks: 43943
Some nice examples can be found on http://www.freeciv.org/screenshots/1.11.4/ Click on the thumbnails on the big pics. While the big pic loads CPU load goes skyhigh. Your mouse pointer also starts jumping if you move it around while the pic loads. Testing on Mozilla/5.0 (Windows; U; WinNT4.0; en-US; m18) Gecko/20001206
Related to bug 59624.
Set milestone to mozilla0.9
Target Milestone: Future → mozilla0.9
Taking this bug from Don.
Assignee: dcone → kmcclusk
Status: ASSIGNED → NEW
Status: NEW → ASSIGNED
Changing OS to ALL. CC'ing waterson, and attinasi. This bug is a major performance issue on pages with images.
OS: Mac System 8.5 → All
Added patch keyword
Keywords: patch
cc'ing pav & saari, who are working on this kind of stuff now...
You need to check for NS_STYLE_BG_PROPAGATED_TO_PARENT in addition to NS_STYLE_BG_IMAGE_NONE (for the BODY->HTML background propogation we set that flag on the BODY to indicate that it has no image but that it has sent it up to its parent). Also, please comment the damageRect inflation due to twips-rounding-error change, and sr=attinasi
looks good r=rods
Patch checked in.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Marking verified per last comments
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: