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."
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.
You have to pay for windows, anyway, so why paying for cedega is worse? It's better because it's cheaper :)
The WinXP user in me takes graphics and gui for granted. You turn on your PC and it just works, no matter what.
.conf file had the wrong PCI Bus address.
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
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.
IGB: More fun than eating oatmeal!
This is a very well-written, comprehensive discussion, that I look forward to reading through thoroughly. But I can't help being pessimistic about how this Frankenstein is going to keep adding new pieces without a central authority to enforce a consistent plan.
What I'm listening to now on Pandora...
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...
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...
The reasoning is that most modern graphics hardware has much faster performance when rendering in 3D than in 2D. The performance difference is large enough in many cases to make it worthwhile rendering a 2D window as a texture on a 3D object to take advantage of the optimization done in the 3D hardware. Depending on the hardware and driver support 2D in hardware may be slower than 3D in hardware and 2D in software will definately be slower.
I was just skimming the comments and I notice just in general the lack of understanding of the issue this person is bringing up. I think the main thrust of this article is that by the time Longhorn is released, Linux will be the last non-GPU-accelerated major desktop (Thats if you even consider Linux a desktop OS) OS available. What makes it worse is that Linux has no real solution in the pipe line, other than some "band aids" applied to the current X server. These "band aids" will still not get us to the point that other desktop OSes will be at (LongHorn) or are already at (OS X). Which is sad, and may hurt Linux some in desktop acceptance. He also mentions that since the GPU has become so fast at processing 3D that certain aspects of the GUI can be accelerated to the point of real-time (or 30+ fps, Ex. Graphic filters) which your main CPU would require a few seconds to even process a single frame. This would be a major advantage considering how useful this would be to graphic artists or the like. So the argument that we do not need eye-candy maybe true to your own needs, but it does have pratical application. And again Linux has no solution in pipeline to facilitate this kind of acceleration. Just a thought.
I've used Linux since late '94, and Linux with X since mid-95... and I'd only ever had the vaguest idea of how the X-ish display systems and subsystems all hung together... until now. It's fantastic to see a detailed and lucid (and, as far as I can tell, fairly thorough) article like this, put together by someone who obviously knows the topic extremely well.
3D is faster than 2D because most 2D ops (except the final projection etc) are relagated to an old low-capacity legacy chip while the 3D ops are running with more super-fast RAM and CPU power than the primary system itself. 3D cards are BEASTS and they get naughtier every day!
What the hell is MS doing with its time - making TPS reports?
I think you mean, what the hell is Dell doing with its time, if they can't ship the right video drivers with their own machines. Granted there's a lot you can blame on MS, but I don't know why you're blaming MS for Dell's incompetence.
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
The issue of open source 3D drivers is a real one, but I think Jon - like perhaps many of us - have accepted that the solutions to this lie at the political level and not at the grassroots campaigning level. Getting a fully open source nVidia driver is not merely a matter of asking forcefully enough, there are real economic and social problems that would need to be resolved first; nobody seems to be working on them.
Given this constraint and the fact that the world is rapidly moving to 3D acceleration for all drawing, even on the desktop, it's completely reasonable for Jon to brush this off as "well that's just something we have to live with". Certainly I'd say nearly all the Linux users I know with ATI or nVidia cards do use the proprietary drivers already and don't have any hangups doing so. Are they perfect? No. But then the open source drivers for some cards are buggy as well, it's not like being open source is a magical recipe for bug-free software so this seems to be something of an academic point.
Now judging from the X server lists there is this fundamental tension between those who believe a graphics architecture that basically requires Linux+accelerated/proprietary 3D drivers is wrong and should not be pushed, and those who like Jon think it is the future and should be supported by everybody. In the first camp are people to whom open source drivers are ideologically important along with BSD+Solaris users who won't get all the video work being done in the Linux kernel nor are they likely to get accelerated drivers from manufacturers. In the latter camp are those who are concerned with Linux being competitive Windows/MacOS X and those who have written off open video drivers as "you win some you lose some". Oh, and then there's Red Hat who are pushing the new architecture and also saying that it's OK because on some obscure/old cards there are open source drivers that accelerate 3D enough to run it.
I do agree with you on Exa - whether it's a bandaid or not, I'm sure it'll help some people.
Those of us with nVidia cards and games will have to wait until somebody, anybody, figures out why nVidia can't enable render acceleration by default in their drivers as apparently nVidia have little incentive to support Exa in their own drivers. Last I heard, they were waiting on a driver test suite for render acceleration.
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?
How long before game devs start seriously looking at Linux as a platform... Will these improvements lead to more games being ported or is the gaming industry happy with it's current DirectX love fest?
Also Vista's weak OpenGL support probably won't help bridge the gap between Linux and Windows when it comes to graphics.
Get your torrents...
Seriously, you're absolutely right in that it is about the eye candy. Nothing wrong with that though, although I do wish that everyone would just be honest about it and stop trying to come up with some bogus productivity justification for wanting to have a "shiny" desktop.
If you want to have a plain, utilitarian computing experience then go ahead and stick with the plain-jane window manager and cheap video card; that's fine for you. But don't get on the case of everyone else who enjoys a flashy desktop. Desktop computers should be fun, and fun is the reason why many like playing with Linux in the first place.
We apologize for the inconvenience.
therefore he cannot be hired by IBM.
(former IBM employee)
That may have been true 12 years ago, when Windows 3.1 users were just getting used to the idea of more than 256 colors, but that's no longer the case.
X11 has supported OpenGL, transparency, and other modern features for many years. What it hasn't done is support them for regular desktop graphics, but that's because they are a gimmick there. Your desktop doesn't become any more usable or any better for graphics or visualization by having semi-transparent menus or windows that warp. Still, it's a gimmick that X11 now supports.
Ahead? Far ahead? In every aspect of what's in wide use, X is playing catchup,
I challenge you to name significant features where X11 is "playing catchup" relative to Windows or Macintosh. In fact, today, X11 is ahead of Windows and Macintosh in terms of features and functionality of the graphics subsystems.
No you're living proof that if you restrict yourself heavily, you can make yourself feel good about being "ethical about your purchases". Had you actually wanted to play games or do CAD you'd be screwed! You just happen not to care about these things. To others they may be vital - hell they may even be the reason they bought a computer in the first place.
This Linux elitism just doesn't seem to change. "I don't have a problem doing what I want to so if you do you must be an idiot" is not going to make you any friends (or Linux converts)
These posts express my own personal views, not those of my employer
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.
I'll be glad when X can deliver clean, sharp true-type fonts like Windows does. Oh, well. Better to be crappy on the outside and good on the inside rather than vice versa.