Petr,
to a certain extent, yes, VirtualGL is doing that.
However, VirtualGL is using VNC as the transport medium but I'd like to have a tighter integration with the Xorg architecture, otherwise Windows are bound the the VNC client space. Moreover, compression/decompression is handled by the CPU and I'd have this handled by the GPU (application and client side). But it's a good start and I've already contacted those folks.
In order to get all this closer into Xorg, here's what I have in mind: for rendering I'd like to use a TESLA board with an render pipeline written OpenCL or CUDA. Within a post-processing step the frame buffer (which is actually an off-screen buffer in OpenCL's global space) is compressed and picked-up by a GLX driver in user space. From what I read, AIGLX has the means transferring pixmap images directly to an GLX extension (GLX_pixmaptotexture or something) within the graphics driver. I'd use AIGLX to pass the image directly through to the (DRI) driver an let a pixel shader decompress the image. This way it goes effectively to the frame buffer of the clients X-server.
Since AIGLX is a Fedora project, I hope that anyone here is able to provide me with further technical information about the protocol and the architecture - haven't found anything so far. As mentioned, whatever comes out of this I'll gladly contribute to the project.
Christian.
-----Original Message----- From: devel-bounces@lists.fedoraproject.org [mailto:devel-bounces@lists.fedoraproject.org] On Behalf Of Petr Pisar Sent: Dienstag, 08. März 2011 09:58 To: devel@lists.fedoraproject.org Subject: Re: Request for sponsered development...
On 2011-03-06, Christian Weiß christian.weisz@spoc.at wrote:
Consider an installation of about ~600 low budget thin-clients (with almost no 3D support from the graphics chip) running as X-Terminals. Those thin-client stations are serviced by a host computer for 25-30 stations each. This infrastructure should be the basis of an architectural/interior planning system with serious demands in terms of 3D rendering. It's all clear that the client hardware will not be able to provide the power, so it comes down to a server-based rendering approach. Therefore some of ATI's or Nvidia's latest boards should be attached to the host computers forming a CUDA cluster for their terminals. So, the question is: how to get the image to the client?
This is already addressed by VirtualGL project http://www.virtualgl.org/.
-- Petr