xfwm4 compositor really slow

Olivier Fourdan fourdan at xfce.org
Thu Feb 16 21:37:51 CET 2006


jaanus wrote:
> I know, but that was a way to show, that _everything_ was slow. Yeah, 
> was, full restart helped a bit, thanks anyway :)

I don't think so for various reasons:

1) The code base of xfwm4 embedded compositor is similar in design to 
xcompmgr. The xfwm4 compositor is xcompmgr with code clean up and 
enhancements. In other words, the core algorithms are basically the same.

2) The xfwm4 embedded compositor redraws the screen asynchronously, when
the process load permits, unlike xcompmgr which draws as much as it can.
As a result, xfwm4 compositor is probably faster, but may feel slower on
slower systems.

3) The xfwm4 compositor is tied to the window managers, which means
that there is a single event loop, which gives far better results than a
separate compositor such as xcompgr IMHO (and also for what I see when
running xcompgr). Actually, this is just what Novell is doing with XGL 
and Compiz (ie merge the compositor and the window manager in the same 
process)

4) In any case, the compositor itself is responsible of a very limited
part of the compositing overhead. What is slow is the Render
implementation. That's why it's very fast in NVidia card with NVidia
proprietary driver (which implements hardware accelerated Render) even
on a system with a not so powerful CPU. That's also why the Xorg ppl are
trying to use OpenGL to perform these operations where the card has a
working OpenGL implementation.

5) If don't have a card that supports HW accelerated Render (either
natively or by using OpenGL), then you are out of luck and there is no
software implementation that will help you there. You'll then understand
why the compositor is not enabled by default in xfwm4.

But from your original post, it seems that you are using an NVidia
GeForce 2 card. You should have accelerated render with the proprietary 
NVidia driver.

Make sure you run the nvidia driver (version 8xxx) and have the 
following options set in your xorg.conf :

Section "Device"
         Driver          "nvidia"
         Option          "RenderAccel" "true"
         Option          "AllowGLXWithComposite" "true"
	[...]
EndSection

One last possible explanation is that your card has a small amount of 
onboard memory, and since the compositor requires the window contents to 
be rendered in pixmaps off screen, the use of the compositor may be 
causing the pixmap that don't fit in the video card memory to be stored 
in the main memory which decrease performance dramatically.

In any case, if you find that xcompmgr fits your needs best, you can use 
it with xfwm4 as long as you disable the embedded compositor first (only 
one compositor can run at at time) by specifying "--compositor=off" when 
launching xfwm4. Still, I do believe that the embedded compositor is 
better than xcompmgr.

Cheers,
Olivier.





More information about the Xfce4-dev mailing list