Slashdot Mirror


The State of Linux Graphics

jonsmirl writes "I've written a lengthy article covering what I learned during the last two years building the Xegl display server. Topics include the current X server, framebuffer, Xgl, graphics drivers, multiuser support, using the GPU, and a new display server design. Hopefully it will help you fill in the pieces and build an overall picture of the graphics landscape."

14 of 349 comments (clear)

  1. Ungrounded Optimism? by minginqunt · · Score: 5, Insightful


    Two years ago at FOSDEM, the Xorg fork had just occurred, and there was much excitement. Maybe this time, free from the shackles of the X consortium and XFree86, X would actually improve to the point where we can be proud, and snicker at our Mac OS X using chums and say "Why can't Quartz do this then, eh?"

    Unfortunately, the way I read this article is:

    1) Linux Graphics is a bloody mess.

    2) X is still an embarassment, five years behind (at least) what Quartz and Avalon are capable of.

    3) Nobody has the time, manpower or inclination to fix it.

    Ah tits.

    Ten years ago, we were having the discussion about X being b0rken. In ten years time will we still be having this discussion?

    Plus ca change...?

    Actually I am still excited about X's future. Yes, X development stagnated pretty badly under XFree86. But things are moving along nicely now that X development is being conducted at X.org.

    The state of Linux Graphics isn't a mess. The controversy this article caused on LKML shows that many people are talking and working together and feel that things are improving. It may not be close to what Quartz is capable of yet. But it is still moving the right way.

    The Big Iron vendors let X stagnate because they never ever seemed understand the desktop space. Stupidly, they let Bill and his minions stroll in and take it over before they really had any chance to grasp what a mistake they'd made.

    Then XFree86 let X stagnate further, thinking of itself as some exclusive Gentleman's Club.

    Fortunately, the foundations of X are right. Simple, modular, highly extensible. If there's one thing the Unix Way gets right, it's simple, modular and extensible.

    Now, perhaps, X has finally space to really thrive and grow.

    I reckon the Slashdot will still be having "X Suxx0rs!!!" flamewars in 10 years. I hope also that those trolls will be even more wrong than they are now.

    Perhaps my terminal optimism is sweetly naive, but I sincerely hope and expect X to go from being "just-about-ok" now to leaving Mac OX smoking dead in the dust in the next few years.

    1. Re:Ungrounded Optimism? by kahei · · Score: 3, Insightful


      I reckon the Slashdot will still be having "X Suxx0rs!!!" flamewars in 10 years.


      It's not a flamewar if everyone agrees :D

      --
      Whence? Hence. Whither? Thither.
    2. Re:Ungrounded Optimism? by Coryoth · · Score: 4, Insightful

      Actually, that might be a good idea... how about someone creates a really good commercial windowing system for those poor souls who have to use X every day? I'd love to have something with the quality of Avalon or Aqua on Solaris. That would be fantastic!

      It's all a matter of what level of graphics architecture your talking about though. In many ways X is simply a matter of how you draw graphics to the screen, how you access the hardware. You're, for some reason, comparing it with Aqua and Avalon. In practice X is more comparable with Quartz and GDI which Aqua and Avalon sit on top of. You want something comparable, then try looking at GTK sitting on top of Cairo. Cairo provides the same sort of drawing abstraction and interface that Quartz offers, the same sort of thing Avalon offers. It also has multiple backends so if you work in Cairo you can display on X, Quartz, Windows, or in print via PDF or Postscript. You can use Cairo acclerated over OpenGL. In terms of ease of programming Cairo offers a nice graphics API of various drawing commands. If you want a GUI interface (as in Aqua or Avalon (I think - I'm still a little unclear on what all Avalon exactly entails)) then you'll want a toolkit to expose an interface there. Something like GTK is being converted to run on Cairo (the latest version of GTK uses Cairo for some of its rednering already). It's there in Free software, though it is still young. It provides a lot of what you're looking for and X doesn't matter a bit - X is just how you draw to screen... and in a conveniently network transparent way. X doesn't necessarily suck, but a good graphics stack in Free software is certainly fairly young right now. The need is fairly new as well though... the desktop was not something that was much of a focus (everyone kept saying the desktop wasn't viable). It is coming along though.

      Jedidiah.

    3. Re:Ungrounded Optimism? by cahiha · · Score: 4, Insightful

      Unfortunately, the way I read this article is:
      1) Linux Graphics is a bloody mess.


      And you think other window systems aren't? Apple tried to redo MacOS multiple times, until they eventually gave up and bought NeXT. Microsoft tried GDI+, then Avalon, and both have had big problems. Reengineering large amounts of code, and augmenting interfaces that have been in use for two decades simply is a hard task. Unlike both Apple and Microsoft, which have solved the problem by starting over (and maintaining old versions for compatibility), X11 has managed to evolve.

      2) X is still an embarassment, five years behind (at least) what Quartz and Avalon are capable of.

      Quartz didn't even really exist five years ago, it got limited 3D hardware acceleration only recently, and even today, most of it isn't hardware accelerated by default. If you really want a Quartz-like graphics subsystem under X11, there have been multiple implementations of DPS for X11 around for years; it's no coincidence that Linux desktop developers have chosen not to use them.

      And Avalon? Avalon has been delayed over and over again. Eventually, it may give you about what Firefox and several other systems already give you on Linux. With Avalon, Microsoft is years behind, not years ahead, the state of the art.

      Now, perhaps, X has finally space to really thrive and grow.

      X has thrived and grown since its beginning, despite people badmouthing it. See, unlike the stuff Apple or Microsoft put out back then, X11 has actually survived this long, and that's because it works and it can be adapted.

  2. A New Respect for X by LegendOfLink · · Score: 3, Insightful

    The WinXP user in me takes graphics and gui for granted. You turn on your PC and it just works, no matter what.

    But when I run Linux, that isn't necessarily true. I've run Redhat, Mandrake, Fedora, and just last week, Kubuntu. It's always "just worked" for me, until I installed Kubuntu. I threw it on an old IBM laptop, and I couldn't connect to the X server for the life of me. Well, after several hours spent on Google Groups, I finally found the solution: my .conf file had the wrong PCI Bus address.

    After fixing that, all worked wonderfully! Any of you who know X well enough to be able to do anything with it, props to you. Especially those developers who made it possible to just throw an install CD into a PC and have it automatically detect all the drivers AND set up X correctly. Very cool.

  3. X is hard to code for! by Anonymous Coward · · Score: 5, Insightful

    There are lots of issues that need to get resolved reguarding X and Unix/Linux. The biggest one I've seen is that the developers are super focused on everything being GPL all the way down to the driver level. Here's an example I have a SiS 650 it uses the SiS 315 chipset. Currently there is no 3D driver available in X.

    But, When I started to dig further into why the SiS 315 wasn't supported. I found out that the SiS 315 was the basis for all of SiS/XGI's new chipsets and included all kinds of new IP, register informtion/locations, and therefor datasheets could not be released to create an open driver. Ok, that is reasonable. So I asked if I could view the datasheets. After sighing an NDA I receievd all chipset datasheets within 2 weeks and an internal chip development contact. SiS/XGI was more than happy to work with me to get things to run under Linux/Unix but, their hands were just tied about releasing the specs as open. Also they don't have the technical resources to create a X driver.

    Why can't a binary driver be accepted? I understand the implications. But seriously there are times when you need to look at the bigger picture.

    My rant is done...

    1. Re:X is hard to code for! by Reapman · · Score: 3, Insightful

      I mostly agree... it basically depends on what the goal of Linux is, which varies depending on who you ask. It is my (probably uninformed) opinion that if Linux is ever to be accepted by big buisiness as well as the non technical users then some concessions, like Binary Drivers, are to be made. I don't think you can say to someone like my mom or dad that they should use linux, and, oh you have xyz video card? Well it's xyz's fault that it's slow because they refuse to release all of their information. No, my folks will say whatever, Windows XP works fine, linux is slow, I'll run Windows XP. If you wait for a company to give up what makes them money, you gonna wait a long long time. Personally I don't see supporting Binary Drivers as the death of Linux, but that's just me.

      Of course, if you want to keep the linux "pure" and "clean" then for sure, binary drivers are bad. Just don't be suprised when nobody outside the tech community uses it. Personally I love it and use FVWM because I love to tinker (and because I love having a unique customized GUI) but I'm not ready to even consider moving my folks to Linux. Just my two cents.

    2. Re:X is hard to code for! by krmt · · Score: 4, Insightful
      Why can't a binary driver be accepted? I understand the implications. But seriously there are times when you need to look at the bigger picture.
      I think you need to take your own advice. What happens when you go away because SGI won't pay you any more or decides to cancel your contract? Who can port the driver or make bufixes? In a year? Or two? What about all the users who are dependant on your driver?

      The bigger picture is that we need open drivers so that we're not reliant on you or anyone else. If you want to distribute your own binary driver, go ahead, but the rest of the world needs that driver free.

      Oh, and X.Org doesn't want things licensed under the GPL, but the MIT/X license, just like everything else in the tree.
      --

      "I may not have morals, but I have standards."

    3. Re:X is hard to code for! by Aumaden · · Score: 3, Insightful

      It's not like they make their money selling drivers, so what's the point? They didn't make any money when they told you the Big Secret, so why shouldn't they tell me, Cookie Monster, and anybody else who asks? What are we gonna do -- support their hardware in new applications, possibly increasing sales? Anything but that...!

      It's not about making money, it's about not losing money. Specifically, not losing money to lawsuits. Exposing the commands implemented on the chipset may reveal that the hardware manufacturer is using some bit of logic that falls under someone else's patent. By not revealing how you actually talk to the chip, they hope to buy themselves a little safety from the vicious patent land sharks, er, lawyers.

  4. Re:Thanks Jon! by Anonymous Coward · · Score: 5, Insightful
    I'm posting anonymously because I don't want to seem like a suck-up - rest assured, though, that I am not Jon :)
    I think it's a crying shame Jon has stopped working on Xegl
    I think it's a crying shame that no one (i.e. Red Hat, Novell, IBM, etc) stepped up to sponsor such an intelligent and capable guy, even with just a living wage (although I'm glad that Novell hired Reveman, at least) - and the same goes for drobbins. IBM in particular has damn-near bottomless pockets for R&D, and I bet they hire legions of lesser skilled workers doing more menial jobs. Could they not have spared the budget equivalent to one extra support-monkey for such an exceptional talent? It boggles the mind, quite frankly.
  5. Re:disagree with eye candy by DrWhizBang · · Score: 4, Insightful

    I think what he is saying is that the current crop of video cards have a much more powerful 3D engine than they do 2D engine. You can perform 2D operations with the 3D engine and they are executed faster than they would be if they were performed with the 2D engine.

    --
    Schrodinger's cat is either dead or really pissed off...
  6. Re:The X-Window system is not about Linux graphics by mrchaotica · · Score: 4, Insightful

    Err, isn't that what Xgl or glitz or whatever is supposed to be doing? I think the reason this hasn't been implemented is that they just haven't finished it yet!

    --

    "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  7. Re:He missed some things. by Theovon · · Score: 3, Insightful

    You seem to have a twisted view of what is "open".

    First, consider the graphics cards we have now, such as ATI and nVidia. Those are what we call "not open at all". You cannot get specs, or open source drivers for the latest stuff. This is what you have.

    There are a few low-end manufacturers that do publish specs. But you still don't get anything the least bit interesting about internal workings. Those are what we call "open spec".

    The design for OGP is what we call "open architecture". At first, what you get are complete specs, plus detailed descriptions of the internal workings of the GPU. Then, when the $2 million or $3 million espense for the ASIC is paid off, you get the whole design of everything under GPL. Is that open enough for you?

    The first OGP product is a "development platform", which is under LGPL from the start, with lots of code published already.

    Is that open enough for you?

  8. design by committee by cahiha · · Score: 3, Insightful

    To reinforce my point, the major drawback to Linux is simply 'death by committee'.

    I have seen this phrase popping up from Mac advocates over and over recently; it seems to be the latest marketing meme from Apple.

    In fact, nothing could be further from the truth. Linux isn't designed by committee or anybody else; Linux isn't even an operating system in the sense of OS X, it's a family of operating systems. And what goes into those systems is shaped by market forces and user choice.

    Windows and OS X are designed by little self-appointed elites inside Microsoft and Apple; if anything is "designed by committee", it's those systems. Whether that's a good thing is debatable. I believe more in the power of market forces and evolution than despotism, but your preferences may differ.

    What Linux needs is for one company and/or person to do the same thing.

    There are companies that are doing just that. Have a look at Ubuntu and Linspire, for example.

    Otherwise, Linux will always be 2nd or 3rd to something else.

    Given Apple's checkered history and modest market share, it doesn't seem like Apple ought to be the model to go for. In any case, we'll take your advice for what it's worth.