Begging: Wayland support

Disclaimer: I have never liked X11 and I view moving away from X11 as a good thing.

With that out of the way. The following is a request, on my hands and knees:

  1. Accelerated GL Wayland support for Linux (and other platforms that have or are to have Wayland).
  2. Use the EGL API with Wayland for the context creation.
  3. Cross process support for EGLImage, i.e. a “handle” so that image data can be shared across different GL contexts across different processes (not just threads).
  4. EGL context creation add ons for the context creation fancy jazz we see now with glx/wglCreateContextAttrbisARB.

The above is a request to IHV’s to voice their concerns and opinions so that they can work with Wayland development so that having accelerated GL support is not only feasible but easier.
I have a fear that if IHV’s do not participate with the infrastructure decisions of Wayland, then it will be harder for them so support it.

1 Like

Ok, I’ll bite. Why Wayland?

A little googling around reveals it is a display management server/system project started by Kristian Høgsberg built on the Linux kernel that is intended to be an alternative to Xorg. The goals being lightweight and portable.

I’ve yet to find a feature set or straight-up comparison with Xorg yet.

X11 has always worked just fine for me, but I do hope that Wayland turns out as great as planned.

But isn’t it Wayland that should be supporting OpenGL and not OpenGL supporting Wayland?

Tripped over this looking for GTX580 Linux drivers:

Link

I saw that too, at nvnews.net forums some time ago, “We have no plans to support Wayland.”, which just reinforces my topic “begging”.

As for why X11 is, um, not my favorite thing in the world. Firstly: it complicates making the 2D bits of the driver… worse many of the X11 extensions are, to me atleast, poorly grafted appendages (XVideo in particular, but XRender too). We see that X11 is nasty to do well in that still there are issues with 2D drawing on Linux (big web pages under Firefox, the train wreck that is KDE4, etc). Shuttleworth recently made some noises about Wayland in place of X11 for Ubuntu, but not with a tight schedule of when exactly.

Much better if the IHV’s participate now and take a gander at what the system looks like and put their wisdom their now, rather than later.

X11 solves a problem that only a very, very tiny portion of users even care about: “run application on a remote machine, display on your own machine”. That network transparency makes using X11 directly painful, making drivers painful (having witnessed first hand myself in the embedded world).

Compounding the irony, is that 3D acceleration across the network connection is kind of, um, flaky-ish. Even enabling the experimental GLX protocol support, a great deal of GL3 and GL4 API points have no GLX protocol.

So as of now: X11 gives painful to implement accelerated 2D drawing (including compositing), often less than optimal 2D performance as well and a painful API on top of it.

My rude opinion is that the only reason that X11 has been on Unix world so long now is because there has not been a reliable enough API to take it’s place of window and event API… but X11’s network transparency induces a great deal of pain, and it is in the vast majority of situations completely unused functionality.

Unix systems are almost all about client/servers and local/remote accesses. This is one of the main power of Unix for me, just like interfaces APIs (like pthread, XFree and so on). If you remove any of these points, you remove the essence of Unix, so what is it meant for.

I read few about wayland, but it seems it won’t be available for uses since several years, current docs don’t provide good specs for IHV to even try to develop experimental drivers over it.

This is a good point but when needing remote graphical access to a server for 3D , the VirtualGL approach always seemed more natural to me than the X half-baked which-one-is-the-server-and-which-one-is-the-client :
http://www.virtualgl.org/About/Background

Just an aside, for me the whole point of Unix is a variety or programs/tools that each do one job and only one job and very well with the ability to mix and match these tools together.

For those that are interested, VirtualGL is more or less RFB on GL steroids… the GL surface is sent separately. The bandwidth requirements for interactive VirtualGL (or RFB often enough) can be huge… one can cut down with good lossy video encoding (like some things out there) but, eh… getting off topic.

Right now, X11 is a hindrance in the following ways:

  • [li] Implementors: major pain in writing a good X11 driver[*] Developers: X11 sucks to write for at time, the API is, for lack of a better word, painful. The X11 extensions are poorly grafted appendages with the joints all wrong. Compositing window manager’s typically eat up twice as much bandwidth than they should… not a real issue on desktop, but a show stopper in the embedded world.

Here is a trick question: name a successful consumer product that uses X11. Google did not use X11 for Android, Apple did not use X11 for Mac OS-X… all for good reasons. [The X11 server on Mac OS-X is a client to the Mac OS-X windowing system]

The sad part is that what one wants out of a windowing system is not that much:

  • [li] Make Windows[] Fullscreen[] Get Events[*] Create and share image buffers shareable across process boundaries

X11 does much more but that extra functionality is very rarely used. That extra functionality makes creating a good X11 video driver a major, major pain.

Thanks for the point about virtualgl, I didn’t knew it before.

Yes X11 might be oldy now. And it can be painful for implementing, or for creating drivers, I can’t know since I never did that.
However it is well known, it has proven since many years, and I must admit I never encountered X bugs (maybe only with some ATI cards with proprietary drivers…), and more it’s not restricted to Linux just as wayland seems.

From having read a bit about wayland, there’s a point I don’t like at all: using X server as a wayland client. As first glance it can look a good point since most graphical applications will remain compatible, but I’m afraid that doing so will never help IHV to deploy their drivers on wayland (maybe i’m wrong here), and people using wayland as main graphical system will end with a-bit-slower-application running on X.

That’s just my view about this.

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.