Closed Bug 244506 Opened 20 years ago Closed 13 years ago

scrolling sluggish on page with fixed background under X11

Categories

(Core :: Graphics, defect)

x86
FreeBSD
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: fritz.heinrichmeyer, Unassigned)

References

()

Details

(Keywords: perf, qawanted, Whiteboard: X only. DO NOT COMMENT ABOUT WINDOWS ISSUES)

Attachments

(2 files, 4 obsolete files)

User-Agent:       Mozilla/5.0 (X11; U; FreeBSD i386; de-AT; rv:1.7) Gecko/20040521
Build Identifier: Mozilla/5.0 (X11; U; FreeBSD i386; de-AT; rv:1.7) Gecko/20040521

the mentioned page cannot be scrolled with

mozilla and firefox under freebsd (x11 i guess). This site can be browsed fine
with konqueror under x11 and with mozilla/firefox under windows.

Reproducible: Always
Steps to Reproduce:
1. reboot into freebsd
2. launch firefox or mozilla (0.8, 1.7rc2 respectively)
3. go to http://www.blogtari.com and scroll ...

Actual Results:  
xserver eats computing power

Expected Results:  
smooth  scroll like under windows or under x11/konqueror
CSS shows:
[...]
     background-attachment: fixed;
     background-image: url(../images/background_01c.gif);
[...]
I'm not a CSS expert but this looks similar to bug 90198, bug 201307 and bug 242364.

*** This bug has been marked as a duplicate of 90198 ***
Status: UNCONFIRMED → RESOLVED
Closed: 20 years ago
Resolution: --- → DUPLICATE
This has nothing to do with bug 201307 and bug 242364.

It's hard to tell what bug 90198 is all about, since all sorts of things have
been dupped to it, most likely covering multiple back-end problems.

So I'm going to reopen this, mark a dependency, and attach the profile results
in case someone familiar with painting gets a chance to take a look.
Blocks: 90198
Status: RESOLVED → UNCONFIRMED
Resolution: DUPLICATE → ---
Attached file Profile results (obsolete) —
Short story (profiled a GTK1 non-xft build, as usual): 

We spend 95.4% of our time on this page in select().  select() is called from
_XSend and _XFlush (in about a 1:9 ratio).

_XSend is called almost exclusively by XFillPolygon, which comes from
nsCSSRendering::PaintBorder (by way of nsRenderingContextGTK::FillPolygon).

The callers of _XFlush are:

  XDrawString, _XFlushGCCache, _XEventsQueued, _XSetClipRectanges, XCreateGC.

XDrawString is called by text painting (and accounts for 2/3 of the time spent
scrolling on this page).

_XFlushGCCache is called by XSetClipMask, which is called by
gdk_gc_set_clip_rectangle and gdk_gc_set_clip_mask.  The former comes from
nsNativeThemeGTK::DrawWidgetBackground (for the scrollbar thumb); the latter
comes from nsImageGTK::DrawTile.

XCreateGC is also called pretty much only from nsImageGTK::DrawTile.

_XEventsQueued is called from XPending, which is called from g_main_iterate via
gdk_event_prepare.  Not sure what's up with this codepath and why it's taking
time in this case (about 5% of total).

_XSetClipRectanges is mostly called by XSetRegion, which comes from
nsGCCache::GetGC by way of gdk_gc_set_clip_region (the ultimate caller is
UpdateGC, called from nsFontMetricsGTK::DrawString and various other places).

So we're talking to the X server way too much and flushing _way_ too much, it
seems to me...
Assignee: general → blizzard
Status: UNCONFIRMED → NEW
Component: Browser-General → GFX: Gtk
Ever confirmed: true
Keywords: perf
QA Contact: general → ian
Summary: scrolling sluggish with all mozilla/firefox browsers under x11/freebsd → scrolling sluggish on page with fixed background under X11
Whiteboard: X only. DO NOT COMMENT ABOUT WINDOWS ISSUES
Depends on: 244809
Attachment #149420 - Attachment is obsolete: true
I've filed bug 244862 for equivalent XFT issues.
Attached patch make gtk1 happy (obsolete) — Splinter Review
Attachment #149421 - Attachment is obsolete: true
Blocks: 244862
That patch speeds up scrolling on that testcase by a factor of 2 or so.
Attachment #149423 - Flags: review?(blizzard)
Attachment #149423 - Flags: review?(blizzard) → review+
Attachment #149423 - Flags: superreview?(roc)
Assignee: blizzard → tor
Attachment #149423 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #149423 - Flags: superreview?(roc)
Attachment #149447 - Flags: superreview?(roc)
Attachment #149447 - Flags: review?(blizzard)
Attachment #149447 - Flags: superreview?(roc) → superreview+
Attachment #149447 - Flags: review?(blizzard) → review+
Checked in.
This has caused the regression bug 255703.
gfx/src/gtk/ has been removed on trunk.
This bug doesn't look like a branch candidate to me.

-> WONTFIX
Status: ASSIGNED → RESOLVED
Closed: 20 years ago17 years ago
Resolution: --- → WONTFIX
This bug is alive and well on trunk.  The hotspots are different (so we should reprofile), but the scrolling is still really crappy with thebes.
Status: RESOLVED → REOPENED
Resolution: WONTFIX → ---
It'd be really nice to have the testcase attached to the bug...  Too bad save page, complete doesn't pick up CSS images.
Assignee: tor → nobody
Status: REOPENED → NEW
Component: GFX: Gtk → GFX: Thebes
Keywords: qawanted
QA Contact: ian → thebes
Attached file Trunk Profile
Fallback compositing for the win... or lose, as the case may be.  :(
Attachment #149354 - Attachment is obsolete: true
See my comment (13) this date in bug #244862.  
Can anyone test this will a latest nightly build? If the bug can no longer be reproduced it was likely fixed by bug 564991. Please mark it as such.
No response in over a year, so I'm assuming that this was resolved by retained layers. Closing.
Status: NEW → RESOLVED
Closed: 17 years ago13 years ago
Resolution: --- → WORKSFORME
The url has gone too.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: