[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ppc
Subject:    Re: why is X-Windows so slow?
From:       "Andrew B. Arthur" <arthur99 () global2000 ! net>
Date:       1999-08-23 4:43:10
[Download RAW message or body]




> On 22-Aug-99 Gilb wrote: Compared to MacOS, the display under X-Windows is
> *very* slow. The windows and menus show up fast, but slower than MacOS does
> with menus and windows.

Both KDE and GNOME default to opaque Window drawing which is slower then
Window outline border dragging. Actually, I find X to do better at opaque
dragging, then Mac OS + that extenuation 'hack' that enables opaque
dragging.

I have noticed that gtk+ is faster drawing widgets, while qt is faster
drawing menus...

Widgets (in the Mac OS known as controls) draw slower in X then Mac OS,
because in the Mac OS, the 32-bit Quickdraw natively uses the Mac OS
widgets, (explaining why Kaleidoscope / Mac OS themes are slow) but not as
slow as X, because Mac OS widgets are much less flexible. Finally, the Mac
OS uses all kinds of little hacks to make sure that widgets appear quickly
and in the correct place when you load a program. This isn't the case with
X11/popular widgets set.

>> Is that because my ATI card is not supported?

Make sure No Video Driver is UNchecked. Rerun Xautoconfig / Xconfigurator.
That will make sure your X Server is accelerated

>> Or is there something I can change in Gnome so display gets faster? (like
>> removing any delay or stuff like that).

> There are at least two reasons for this: 1) X windows is a _very_ different
> beast than the MacOS desktop.

Yes, 32-bit Quickdraw (as used in the Mac OS) and the X Windowing System as
used in UNIX are quite different beasts. X Windowing System is much more
flexible then Quickdraw, at least the popular XF68_FBDev used on PowerPC's
commonly, lack vendor designed video drivers, and rely on drivers that were
made by people studying how the cards work -- but not necessarily fully
understanding some of the undocumented features, that the Mac OS uses to
accelerate video.

> Everything in X is done by client programs (things like Netscape or a terminal
> window) asking the X server do actually show things on the screen.  While this
> way of doing things is very generalized, it does mean things slower.

This can make things slower on a poorly designed X Server, but using several
hacks found on modern X Servers (especially commercial ones), this isn't a
big issue.

There are still lots of ways to accelerate XFree86/XF68_FBDev 3.3.1that
nobody has done yet -- when the next version based on XFree86 4.0, will use
some of them, leading to a faster feel to it. Another thing to note is that
XFree86 4.0, uses modules for each graphics card -- so it should make it
possible / easier for graphics vendors to create accelerated / better video
drivers.

Whether or not, X11 is inheritable slow, is something discussed (and pounded
to death) in Linux-advocacy newsgroups, but the end result is, it not a
major issue -- and you should consider supporting other non-X11 projects
like GGI or Berlin if you hate X11. The fact is X11 is standard, and it's
here to stay for several more years.

> On the other hand, MacOS applications perform calls directly into the
> windowing layer to perform graphics, which has to be faster than sending
> requests over some networking fabric.

That can make 32-bit QuickDraw seem faster at a first glance, but parts of
32-bit Quickdraw (even in Mac OS 8.5+) still use m68k assembly.

> The _advantage_ of doing things the "X" way is that the clients and the server
> need not be on the same machine, or even in the same country :-)

That is an advantage in some cases, but the bad thing about X it is quite
network intensive... a few remote X Sessions can quickly eat up all of the
bandwidth on a 10-t base enet.

> The X server needs to understand how to use any hardware acceleration on your
> graphics card.  I believe that the latest servers _do_ use these features on
> the ATI boards, but I could be mistaken.

Make sure that no video drivers is UNchecked if you are running a version of
the ATI Mach 64 or Twin Turbo card. After doing this, you will need to run
either Xautoconfig or Xconfigurator.

> Either or both of these could contribute to your perceived "slowness".

Lots of other things can make it feel slow -- for example, you might be
lacking enough RAM to properly cache settings. Or maybe you are running a
toolkit/widgits set that is slow or just isn't well written (motif/lesstif
comes to mind). Also check for other things that could be slowing things
down -- top is a great program to find programs that are wasting extra CPU
cycles.

I hope this has helped you get your X Server performance faster.

Thanks,

Andrew Arthur a.k.a. AArthur
arthur99@global2000.net
AIM: arthur998

[[ This message was sent via the linuxppc-user mailing list. Replies are ]]
[[ not forced back to the list, so be sure to  Cc linuxppc-user  if your ]]
[[ reply is of general interest. Please check http://lists.linuxppc.org/ ]]
[[ and http://www.linuxppc.org/ for useful information before posting.   ]]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic