Originally Posted by Gusar
Does Wayland need specifically DRI or will any kind of direct rendering do?
My understanding is that Wayland is based on the Linux kernel DRI.
nvidia uses it's own direct rendering interface. So why not just adding
support for that one in Wayland? Because of two reasons:
First, the nvidia interface to the kernel is not document, so one would
need to reverse engineer that.
Second, even if you know *how* to talk to the GPU through the nvidia
kernel interface, then you would still need to reverse engineer *what*
to tell the GPU. Means, the actual DMA stream is built up in user-space
and sent to the GPU through the kernel interface. In other words:
the kernel DRI is just a means to give the actual graphics library
(residing in user space) access to the GPU. BTW.: the nouveau project
shows this reverse engineering isn't quite a simple task.
Anyway, the more I read and think about Wayland, the more I'm convinced
it's not the right way of doing it, because network transparency is missing!
Not that a whole lot of people urgently need that any more, but it is still an
essential feature for certain special setups where DRI-only system have
proven to be very poor (ever tried to do something like XDMX on windows?)
Adding network transparency could be added to Wayland in two flavours:
OpenGL/ES streams or VNC/NX like. In the first case, you would essentially
add the GLX protocol to Wayland. So in this case I would tend do say:
let's stay with the X-Server, but make sure that the old-style 2D-API is
internally translated to OpenGL (similar to what XGL does). Developers of
new applications can certainly feel free to use OpenGL/ES directly.
This would make the transition from the old 2D-objects based world
to the 3D-stream based world much easier, IMHO.