[FreeNX-kNX] NX server performance

Fabian Franz FabianFranz at gmx.de
Sat Mar 15 16:38:47 UTC 2008

> > Why do you use XShmPutImage? Perhaps with a normal PutImage 
> > you would be more successful?
> I use XShmPutImage() because it performs better in other X servers, such
> as
> TurboVNC.  It doesn't provide much advantage in NX, but there's no
> disadvantage to it either.  It performs about the same as other image
> drawing methods, such as using XPutImage() or Pixmaps.  And all methods
> suffer from the same high CPU overhead due to fbBlt().

> I actually was able to eliminate the md5_process() overhead by setting the
> GLX trap like we'd discussed earlier (I thought that it was already set--
> mistake on my part.)  But the fbBlt() overhead is still a problem.

Perfect with the GLX trap!

Perhaps this fbBlt is called as NX is drawing everything also to an internal framebuffer. I think this was added around the development of 1.5.0, perhaps you can find something in the changelogs.

This allows to do screenshots and shadowing, but it might be the cause of this problem. And in reality it really would not be a problem that for the GLX like for XV Video there is just a black shape, where it should be.
> > No real idea ... Might be that the damage extension here 
> > igves more harm than use? Tried to disable it: -ext -damage 
> > on cmdline.
> Good suggestion, but unfortunately it doesn't do anything. 
> damageCopyArea()
> is still called for every XShmPutImage() call, and the performance
> overhead
> is still there.  I'll ping the NX developers and see if they have any
> ideas.

Hm, what about ./configure --disable-damage or the like.

(Okay that would be for the X.org approach, but I think its possible to set this in IMakefile too.)

Best Regards,


More information about the FreeNX-kNX mailing list