There is a lot to be said for the X window system. It is, after all, one
of the oldest and most successful free software development projects in
existence. X helped to pioneer many concepts, including the idea of a
graphical display as a network service and the absolute separation of
graphical mechanism and policy. Long before Linux began to make
proprietary Unix vendors worry, X was pushing aside proprietary desktop
implementations.
X has a problem, however: it is very much a two-dimensional system in a
three-dimensional world. It was designed around dumb frame buffers, but is
now expected to run on graphical adaptors which, in terms of processor
performance, far outclass the central processor they serve. As a result, X
tends to make poor use of contemporary video hardware; it restricts itself
to the hardware's two-dimensional processor (a nearly vestigial
afterthought bolted onto the real hardware) and cannot make use of many of
the capabilities provided by the 3D processor. X is, essentially, using a legacy
interface which is poorly supported now, and which may go away in the near
future.
To remain viable, and to help free operating systems develop the best
desktop experience possible, X must grow into the current crop of
hardware. The X developers have understood this for some time, and have
been working in that direction. Events from this week demonstrate,
however, that there is a lack of consensus on what needs to be done, and
when.
The person driving the debate is Jon Smirl, an active graphics programmer.
Frustrations with the X development process have led Jon to write and post
a document called The State of
Linux Graphics. Regardless of how one feels about Jon's opinions, the
document is worth a read; it is a comprehensive overview of the problem and
the current body of low-level graphical software. If you've ever wondered
what all those acronyms (XAA, EXA, DRI, ...) mean, this document will
clarify a number of things.
X developers seem to agree that X needs to make a switch from 2D to 3D
hardware. There is less consensus on how the 3D hardware should be made
available to user space. One approach is to make OpenGL be the API for next-generation
graphics. This interface is relatively well designed, is open, and already
has a certain level of support in free software. It is a high-level
interface which allows an application to take advantage of the hardware's
capabilities. OpenGL supporters see the X of the future as being a sort of
management layer around the OpenGL interface.
Jon Smirl is one of those supporters. He has been working on Xegl, a version of the X
server which makes the OpenGL interface available. A few weeks ago,
however, Jon announced an end
to his Xegl work. In his opinion, Xegl is not going to reach a usable
state anytime soon, so it is not worth working on.
The problem, it seems, is that Xegl lacks developers and is progressing too
slowly. According to Jon, a big part of the problem is that development
work in the X community has been spread in too many directions. He is, in
particular, critical of an effort called EXA, which is working to integrate
drivers using the 3D hardware into the existing X API. EXA may have the
effect of extending the life of the current X server, but it does
relatively little to make the hardware's capabilities available to
applications. As a result, the X server will be faster on supported
hardware, but it will still be a 2D server. Says Jon:
End result is that EXA is just a bandaid that will keep the old X
server code going another year or two. There is also a danger that
EXA will keep expanding to expose more of the chip's 3D
capabilities. The EXA bandaid will work but it is not a long term
fix. Its existence also serves to delay the creation of a long term
fix.
Jon seems to believe that the main thing EXA will accomplish is to push
back the date when Xegl will show up as the real solution to the problem.
He claims that Linux is already far behind the proprietary platforms in
providing a desktop which can take advantage of contemporary hardware, and
has little patience for developments which threaten to widen that gap.
So Jon has stopped development work on Xegl, and is working for process
change instead. His conclusion states:
As a whole, the X.org community barely has enough resources to
build a single server. Splitting these resources over many paths
only results in piles of half finished projects. I know developers
prefer working on whatever interests them, but given the resources
available to X.org, this approach will not yield a new server or
even a fully-competitive desktop based on the old server in the
near term. Maybe it is time for X.org to work out a roadmap for all
to follow.
Not all X developers are entirely supportive of Jon's position. The
administrator of freedesktop.org, where Jon's document is hosted, posted a dismissive response and promptly shut down
Jon's account, making the document unavailable. It has since been
restored, but that action (ostensibly taken for other reasons) added an
unpleasant note to the debate.
Some developers seem to agree that the OpenGL approach is the right one for
the long term, but they never believed that this solution could be
implemented in the near future. It is, after all, a complex project. For
these developers, EXA makes sense as a short term, relatively easy solution
to make X functional on current hardware.
Others seem to disagree with the transition to OpenGL altogether. The
current X Render extension makes a number of capabilities available to
applications, and it could be extended where needed. Render is seen as a
friendlier API for 2D applications than OpenGL. Not moving to OpenGL
would mean less disruption for applications and would avoid impacting X
performance on older hardware without 3D acceleration.
The discussion, as of this writing, has not reached much in the way of new
conclusions. The Xorg project lacks a dictator, and will thus be hard put
to pick a direction and expect that the developers will simply follow.
What does seem clear, however, is that the developers are determined to
bring X forward to where it is, once again, a leading-edge graphical
platform. They will probably get there, one way or another.
(
Log in to post comments)