Open Bug 272190 Opened 15 years ago Updated Last year

Slow scrolling because of XGetImage on page with hidden fixed-pos elements


(Core :: Web Painting, defect)

Not set




(Reporter: bzbarsky, Unassigned)


(Blocks 1 open bug, )


(Keywords: perf)

Filed as a Unix-only followup to bug 203439.  It looks like nsBlender::Blend()'s
attempt to lock the drawing surface forces a gdk_image_get(), which is what
takes up almost all the time on this testcase.

I don't know whether using Cairo will help here or not, but scrolling is pretty
painfully slow in current trunk builds...
Blocks: 277177
Keywords: perf
Here's another test case which really exaggerates the problem (or possibly a
related one):
Well that's weird, it seems to only scroll really slowly when I have the page
that I made the test case from open (in another tab or window):
(In reply to comment #1)
> Here's another test case which really exaggerates the problem (or possibly a
> related one):

this also scrolls slowly in windows.

odd "braking" behavior when these get near the top and bottom (but more noticable with these two)
> this also scrolls slowly in windows.

Anything you see on Windows is not this bug.  This bug is about a specific Linux-only issue found by profiling.

Note that if you're testing on trunk you should keep in mind that fixed-position stuff is generally slow on trunk right now; there's an existing bug on that.  But it's not _this_ bug.

vlad, how does cairo handle this testcase?
It seems to scroll fine, even over a remote X connection talking to a cygwin X server.  However, there is some sort of problem at the very top of the page, where rendering just freezes until you scroll down a little ways; not sure what the problem is there (I don't think it's related).
Well, I scrolled around a bit in a current trunk optimized cairo build.  I see a lot of painting and such in the profile and things are very laggy.  Not sure whether it's better or worse than the non-cairo build...

vlad, note that fixed-pos stuff was broken in the build you tested, so you might want to retest a current build.
QA Contact: ian → layout.view-rendering
Component: Layout: View Rendering → Layout: Web Painting
You need to log in before you can comment on or make changes to this bug.