[FreeNX-kNX] Forcing the graphical applications to use the server-side graphics abilities

Mario Becroft mb at gem.win.co.nz
Fri Mar 20 05:17:03 UTC 2009


Mario Becroft <mb at gem.win.co.nz> writes:

> If you were directly running X protocol without using NX, or using
> nxproxy without nxagent, this would be at least partly true. The GL
> commands would be sent via GLX protocol to the X server, which, as I
> understand it, should still be able to use the accelerated graphics
> hardware to do rendering if it wants to. However, in practice the
> performance can be very poor. I am hazy on the details of direct
> vs. indirect rendering in GLX, so I may not be quite right about this.

I should have elaborated on this. From my limited understanding, the
problem with GLX is that if it is running over a high-latency link, the
performance is extremely poor for many applications because they need to
interactively manipulate various GL-related data structures in the
server.

Running in this mode will cause completely different performance limits
compared to doing the rendering on the nxagent host and sending the
image data to the client. Depending on the application, one may be
faster than the other, but in nearly all cases, unless the user is on an
ultra-fast link, the performance of remote GLX will be very bad.

When doing rendering on the server with VirtualGL or Mesa software
rendering in nxagent, apart from the performance of the rendering
itself, the speed will be limited by the NX server and client image
compression performance. Depending on the link speed and the image
compression parameters, this may be CPU or link-speed limited. NX can do
PNG or JPEG compression, both of which are quite effective, but quickly
become CPU-bound for large images at high frame rates. If you are just
drawing static images, it will be fine, but for animated graphics at a
full screen resolution, you will definitely hit performance limitations,
if not caused by link speed then CPU. From memory, with a 1280x1024
screen on 100 meg ethernet, only about 5 fps is typically possible.

The image compression in NX is not very CPU-optimised, so there is
considerable room to improve this if someone wants to.

-- 
Mario Becroft <mb at gem.win.co.nz>



More information about the FreeNX-kNX mailing list