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."
I just want an ATI driver that will work in full screen mode with my Dell Laptop. Too much to ask, maybe, but I'm making due just fine with what I've got. (Fedora FC4 w/ Enlightenment)
Generation Trance: What generation are you?
Im sure you guys remember the Looking Glass demo that Sun showed us a year or so back. This article mentions Project Looking Glass, but only explain what it does. Did Sun just throw this up for publicity? Are they ever going to opensource it or make it more widely avaliable?
Linuxgangster.org
Interesting read. I'm quite happy with my nvidia proprietary drivers as long as Cairo/glitz/whatever will use that to make my desktop more responsive.
I hato to see a lousy looking window-drag (ie. sloow update) when I know I have a professional video card. It really bugs me and this is the reason I also bought an iBook (well, besides the BSD inheritance).
here's a demo of a hacked version of KDE running on a XGL server
i .html
http://rapidshare.de/files/4553011/xgl_wanking.av
Demoed at aKademy 2005, KDE's developers conference.
According to the developer, this is on a 4-years-old notebook running ATi hardware. Quite impressive.
I think it's a crying shame Jon has stopped working on Xegl - we can only hope others will pick up from where he left off. It looks like Linux graphics is going to go through a series of half-way steps before arriving at fully OpenGL accelerated graphics: Exa based drivers first to speed up RENDER based graphics, then Xglx running on top of an existing X server to utilise its mode setting and input code, then finally Xegl which eliminates the existing X server entirely in favour of a new one that pipes all its drawing directly into the 3D pipeline.
Question is, how long will it take?
My conclusion is that most people don't really know what is going on with graphics in Linux. It's understandable that people don't see the whole picture. Graphics is a large and complex area with many software components and competing developer groups.
...now just lemme read that X server RFC...
But it really should be like.. at most 3 indirections:
the toolkit --> the X server --> and the driver/hw!!
When I saw this (App->gtk+->Cairo->XRender->Xgl ->GLX(X)->GL->hw) it blew my mind..
gtkaml.org
I don't need to suppose. I have seen and used a fully 3d accelerated desktop on both Longhorn Beta 1, and Mac OS X Tiger with Quartz 2D Extreme enabled.
They are both impressive enough, but more importantly, they do things that X simply *cannot* at this time.
I do, however, hope and expect this to change.
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.
Never happen.
Oh, X as a protocol/platform may conceivably support Quartz functionality and beyond (Display SVG?), but in terms of the interface, I don't see any free WM in the same ballpark as OSX in terms of usability. KDE comes closest to quartz in theory (frameworks, OO, DCOP, KParts), but there is still only a nascent appreciation of the value of usability there. KDE suffers from the most stereotypical problem of OSS development: great tools and frameworks, and spotty/inconsistent/crappy usability. And I still think KDE is the best open WM/env out there! I use it daily and like the good stuff, but the bad stuff is like a sore zit that keeps getting rubbed, and I wish I could pop it...
I still feel it comes down to giving usability geeks the pimp hand when it comes to releases. Usability bugs need to be first-class citizens in the desktop world. And at a minimum everything everyone else can do must be supported, whether it's clean or orthogonal or not. Make it optional if it offends your sensibilities, but people expect to be able to do stuff like (for example) filter IMAP on the client side for a multitude of reasons.
I thought the whole point was that you Linux freaks didn't need no stinkin' pretty graphics?
Well, having seen a lot of the other comments on this story, I'd have to say a lot of people don't agree. Personally, I think X blows, and it drags most of the Linux world down with it. It's an ancient idea that was poorly implemented in the first place. Pretty much every commercial offering has a better windowing server than X.
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! I'd definately pay $60 - $80 USD for it. To heck with it being OpenSource, how about it be fast, functional, and easy to code for?
-WS
An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
Even if a "perfect" X server is implemented, that's not the end of the battle to give the Linux desktop a facelift. It's the beginning.
Toolkits running on top of X are just as important to Desktop Goodness as the Xserver is, and they can only be updated AFTER the X situation is stable. GTK and QT are the obvious ones, and I'm sure work will proceed on them, but I suspect such changes would be significant enough that they would warrant a major release, and lots of work to fully integrate new X features as opposed to just bolting them in.
Frankly, I think the best way to proceed would be to take the useful parts of Gnome and assorted GTK apps and port them over to the Enlightenment Foundation Libraries, once they are stable. Enlightenment DR17 is probably the only environment available with the potential to pass itself off as a next generation desktop for Linux and make it stick. Can you imagine what Gimp would be like written on top of the EFLs? (drool). Of course, that's too much work to expect it to actually happen on a large scale, but it might be that Gnome's recent trend toward simplicity could make such a target easier to achieve.
QT I think is in good hands - trolltech has proven quite good at making good toolkits with increasing performance in each new release. I'm sure it's just my perception, but GTK widigets feel clunky to me and I really think a shift by the Gnome effort to the EFL base would rock the Linux desktop world. Of course, that's easy to say and hard to do, but major landscape changes are not made by minor efforts.
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
I recently tried reinstalling windows on a Dell, using the Dell 'recovery' CDs (OS and drivers) that came with the box. Everything worked except the video. Windows had to boot into 'safe' mode in order for the video to work, and then it was at reduced bit-depth. This was a factory shipped Dell, with factory shipped CDS - I added nothing to it. Of course the problem can be easily fixed, but my point was that it was a problem in the first place.
I booted the same box with Ubuntu live 5.04. X came up fine, no problems. I had to do nothing at all for it to work just fine.
Windows: 0
Linux: 1
This kind of thing happens way too often. What the hell is MS doing with its time - making TPS reports? I guess this is what you get when you spend your resources buying software instead of making software.
"We are all geniuses when we dream"
- E.M. Cioran
A very nice rant indeed, I'd mod you up if I had points.
My answer is to your question
Why can't a binary driver be accepted?
is that if it would be accepted, it couldn't be part of a "free" operating system anymore.
What most people understand is that you can't have a totally free operative system if it runs on proprietary hardware. You need to set your priorities: do I want a free operative system, or just an alternative to Windows/OSX? In the first case, you _need_ to buy hardware from vendors that comply with the GPL, while in the latter you simply can't expect a smooth ride when the people involved (Stallman, Torvalds, etc) all think differently about what that Frankenstein renamed "GNO/Linux/KDE/X.org/whatever" should really be.
Theo de Raadt might be a hothead, but he's right in stating that the GNU/linux folk don't get it if they don't speak out and convince the hardware companies to open source their drivers. Not all of them will, of course, but a chain reaction might occur if there is a sufficient critical mass. That's where "normal" users need to give back. Not code, bucks, but letters and petitions.
Hack your mind out of its sandbox.
The X-Window system runs in a variety of O/Ses, including every flavor of Unix, Mac OS X and Microsoft Windows.
What I haven't understood all these years of 3d development is that why X-drawing calls are not converted to OpenGL drawing lists. An X-Window server could take the graphic calls and store them as OpenGL drawing commands, and each time some window is redrawn, the commands are sent to OpenGL and thus the graphics card. That would mean automatic antialiasing, full zooming etc.
KDE needs to put a stake through the heart of artsd...it's a fsckn disaster.
C'mon...alsa/jack for everything!!!
Knowledge is power. Knowledge shared is power multiplied.
A lot of this article is flamebait. Jon is pretty obviously bitter that the rest of the X developers didn't feel his sense of urgency in moving everything to Xegl right away.
The fundamental difficulty in getting specs to write and maintain open drivers for various video cards still exists, and any move to a fully OpenGL-based system will still have this barrier for a large number of people. If you've ever tried to run sw-based mesa, you know how slow it is, so on a fully OpenGL subsystem a large number of people will have to run it using the proprietary drivers. These work well for some people but for others they crash constantly and integrate poorly with the rest of their system. Ultimately, the X developers have their hands tied with these drivers because they can't fix them. Imagine a world where most everyone running all of X on these drivers, from 3D games to xterm, and you can see a serious problem.
Jon just brushes this off in his article ("believe it or not some people like the proprietary drivers"). Meanwhile, he calls the current effort to actually make the code work a "bandaid" even though it shows great promise to actually deliver useable drivers for a large number of people in a very short amount of time. He laments that X doesn't handle hotplugging well, but ignores the many efforts to implement this (check the X wiki for info) and the fact that no one has really figured out the best way to do it. He willfully ignores the fact that X needs to run on non-Linux systems, and as such it can't rely on many of the facilities he talks about.
Jon's definitely a smart guy, and he understands X incredibly well, but he's unwilling to accept that maybe he's not prioritizing things very well. He certaintly hasn't done a great job of selling Xegl to the rest of the X world, because if he had he might not have written this wonderfully elaborate troll.
"I may not have morals, but I have standards."
Cedega is a mixed bag.Some of my Favorites play great. HalfLife 1 & 2. StarWars Jedi Academy and JK1&2, WoW, GuildWars.
Some of my favorites Don't Play at all. Prince Of Persia, HULK, Legacy of Kain:DEFIANCE...HALO
Always check the wiki before purchasing. http://digital-conquest.ath.cx/wiki/index.php/Main _Page
I support TransGaming with a subscription, almost against my better judgement, because I believe those $5 monthly reciepts show a viable market to the developers. It shows that I use Linux AND buy my software. I also purchase every Linux Game I can find even if its an old LOKI game collecting dust on the shelf. These sales, if made in sufficient quantities, will convince them to port more. NATIVE UT2K4, Awesome under Linux. Have not bought Doom3 yet. Waiting on Quake4.
I wish there were no need for Cedega. But until there isn't, I'll use it.
OSGGFG - Open Source Gamers Guide to Free Games
KDE 4 will not have artsd.
It is too big a change to do in the KDE 3 series.
artsd has some good features, it will be a shame to lose them, but it had some problems too. Ones I've notice is a lag on XMMS of a second or 2 when you start a song and sometimes the connect to it would get hosed and XMMS would just say something like "unable to connect" or somesuch generic error and I'd had to restart KDE sometimes.
There are supposedly other technical problems as well.
The big non-technical problem is that the author abandoned it.
Just because it CAN be done, doesn't mean it should!
I guess I'm just dumb, but while I agree that the data can be held closely (it's theirs, after all), I don't understand what the company loses by releasing it. It's not like their competitors can scan the data-sheets and walk down to the chip fab with the design, any more than I can build a Pentium (or even a 6502) in my basement because I know the registers and instruction set. Don't the data sheets simply describe the interface to their product?
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...!
Like I say, maybe I'm just dumb, but what's the problem with people writing software so that the company doesn't have to? The worst consequence I can see is that bad drivers would make them look bad, but they have that now ("What, I pay all this money for a high-end graphics card and all I get is 640 X 480 X 16!?") when good drivers are unavailable because they block their development.
This next song is very sad. Please clap along. -- Robin Zander
The state of Linux graphics is in my opinion, better than Windows. I've had long nights of reinstalling the OS (Windows) just because I had a bad video driver that corrupted the system. Not even restoring the system from a backup helped. But what I am certainly curious about is minimizing the compile time on systems with higher-end video cards. If GPUs can be utilized for sorting processes and some boards contain more than one processors, why aren't we utilizing these high-speed processors to aid in compiling a kernel for our computers? I don't see the problem since audio processing is already being done.
-- Game Developers: Stop porting badly-textured games from crappy console systems!
Analogies don't equal equalities, they are merely somewhat analogous.
"Personally I don't see supporting Binary Drivers as the death of Linux, but that's just me."
It IS the death of Linux. Of course "big buisiness as well as the non technical users (and) my folks" don't get it.
Linux is an Open Source kernel. Meant for experimentation. It grew because Minix wasn't free. And there were hassles with BSD at the time. It only makes sense if it STAYS free.
Then, investigations into other processors, architectures, etc. can take place. By introducing the CONCEPT of a "binary driver", a lot of that (if not all) is cut off.
In that case, you may as well go with "Microsoft Windows XP (r)".
And why SHOULD your mom or dad use Linux? Personally, I don't care. If they want to, go ahead. Linux is not marketed at them (or anyone else). Some companies may package it, and market that result (and, if they decide to include binary drivers, that's THEIR decision, and the consumers).
But Linux? No way. PS. That's also why it is very, very important that Linus control the trademark. I would HATE to find a binary-only driver in the Linux source.
So, consider that you would not be moving your folks to Linux. You may consider moving them to Ubuntu, or something else. And there IS a difference.
Ratboy
Just another "Cubible(sic) Joe" 2 17 3061
And yes, I also read http://pascal.tsu.ru/en/xkb/ .
Test 1 2 3 4
If Nvidia and ATI released their specs today Linux would still be at least 2 years behind Windows and OSX- thats how long it would take to make drivers from these specs equal to closed drivers made by ATI or Nvidia (especially Nvidia). We don't even have that. As far as I know, only one decent set of open 3D drivers exist, those for the (now very outdated) 9200 ATI cards. Those in the community that demand open drivers will happily hold back the Linux desktop till the open drivers are ready, even if the closed Nvidia driver is better today.
Unlike the author, I see the solution in the "bandaids." No way will many in the community switch over to Xgl when good open drivers for 70% of graphic cards don't exist. The solution is to sneak around these people.
Step 1: Modularize Xorg. This will hopefully push ATI to make better Linux drivers (they already did much better this year).
Step 2: Extend Xorg with EVA and the like. Let them either use open source 3D acceration if its there (not most of the time) and closed acceration when its not.
Step 3: Watch as most desktop Linux users prefer to use the closed drivers that give them eye candy TODAY rather than wait for some open drivers to do it years from now. This gets around the developers that won't improve eye candy till the open drivers are there....
I am a rare species- someone who prefers Linux for its eye candy. I have bought two Nvidia cards because of the quality of their CLOSED drivers, and the fact that those plus xcompmgr make my desktop pretty. I don't care that EVA or Xcompmgr are kludges on top of bandaids. I care that they work. I care that I don't have to wait till someone makes the open source drivers to get eye candy. I want my fading, drop shadows, and wobbly windows NOW and I (along with most people) are more than willing to trade software freedom to do it.
The problem is that the freedom zealots in the community know that. The pratical ones know that most people don't give a damn about driver freedom, and that if they don't stop it (or slow it down by not helping Xgl) one day the Linux desktop will be like MS's or OSX's- seen through closed drivers only. I don't know if its the spoiled brat in me or what....but I don't care. I want eye candy NOW. Not 5 years from now when the open source solutions are in place. So do many other people. This want will get around the zealots and desktop Linux will be closed but beautiful....I hope.
Open Source Sushi
Qt and Gtk are a hinderance to the X Window
System. Neither toolkit was written to work
within the toolkit framework/model that X
provides. Instead they each put forth their
own model and used a forced fit approach to
putting it on top of X. The problem with this
approach is that Qt and Gtk apps do not play
well with native X apps (or each other). I hate
having to have a Gtk "way" to set colors in
addition to the native X11 (X resources)
mechanism. In addition, Qt and Gtk preclude
making the most use of what X has to offer
because they are forcing X to conform to their
Qt and Gtk worldview and API, mostly in the
name of being "cross-platform". What they
thought they were achieving in this approach
to "cross-platform" portability is a unknown
as native X server and libraries have been
available on nearly all platforms form many
many years. X *IS* portable. It doesn't need
Qt or Gtk to *make* it portable. These toolkits
itroduce other problems as well. We would
probably be better off dumping these toolkits
and producing a native toolkit that was desigend
to work within the X Window System framework and
worldview.
While the XvMC situation is not great, it's not as bad as you make it out to be.
I am currently using it on an X86-64 Gentoo system, with an Nvidia FX5200 card, and their version 7676 binary drivers. I primarily play video through MythTV, though I also use mplayer for some things (both of which support XvMC).
MythTV has infrequent stable/public releases. But, they have very frequent development updates via their svn server. The svn version is usually stable, though sometimes bugs are introduced (as expected.. always keep a stable version around in case of problems).
It works for the most part. The issues I have:
- XvMC fails to initialize after a system restart. I get some cryptic error message about a failed authentication, apparenly when allocating resources of some type. This is a problem specific to the x86-64 XvMC drivers. After restarting mplayer 20+ times, it will eventually succeed. It will then work normally until the next reboot.
- I sometimes get choppy video with a "prebuffering pause" error message. This behavior is sometimes unpredictable (it works great for a long time, then suddenly I get choppy video).
Overall, XvMC is still worth using for me. My system is fast enough to do HDTV without XvMC turned on, but I usually leave XvMC enabled because I think it provides better playback than pure software.
If there was a completely open source option for XvMC video drivers, I would drop the Nvidia in a heartbeat. That initialization/authentication bug has been around for a LONG time, but Nvidia has not fixed it. It would have been quickly resolved, and overall playback would be better, with an open source driver.