[FreeNX-kNX] NX performance issue

Fabian Franz FabianFranz at gmx.de
Sat Mar 10 00:24:53 UTC 2007


> Hi there.  I develop an open source application (http://www.virtualgl.org)

This is so funny that you are contacting us ...

I've just found Virtual GL a few weeks ago and put it on my TODO list ;).

> which adds hardware-accelerated 3D capabilities to X proxies such as NX,
> VNC, etc.  It works by rerouting the 3D rendering into a Pbuffer on the
> server's graphics card, reading it back, and drawing it into the X proxy
> using XShmPutImage() or using X pixmap drawing (if XShm isn't available.)

Yes, I saw it. Great website, btw. :).

> The essential workload that VirtualGL produces is a stream of full-screen
> (usually 1280x1024), back-to-back calls to XShmPutImage() or XCopyArea(),
> depending on whether the MIT-SHM extension is available.

Okay ...

> 
> And now, the issue -- in either case, what I observe with NX is that this
> workload will perform great for about 3-5 seconds, then it will slow to a
> crawl and remain slow.  I've tried various quality settings,
> enabling/disabling the bitmap caches, etc., and nothing seems to improve
> the
> situation.  Is there something else I could try?  Or is there perhaps a
> way
> to profile that system and determine what's causing it to slow down?  I
> don't observe this slow-down with other X servers (TurboVNC, specifically,
> or even just sending the pixels via. remote X on a gigabit connection.)

As I think you are using NX 2.1.0 try to disable Lazy image encoding (Ctrl+Alt+E), which sports the effect you've seen.

I think best integration would be to run nxagent under VirtualGL libGL directly, because nxagent internally sets some traps to avoid the effects you've seen, when it by default does the rendering via libGL Mesa to XShmPixmaps ...

nxagentglxTrap=1 (as far as I remember)

see nxagent.tar.gz/programs/Xserver/hw/nxagent/*glx*.c

cu

Fabian

PS: I am available for more discussion of course (as I would really like to see this running), but the above should give you some starting points ...



More information about the FreeNX-kNX mailing list