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?
so does this mean that the excuse of linux doesn thave games will be taken away?
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
There's also a discussion about this on the linux-kernel mailing list (lkml) currently - certainly worth reading:
= 1&w=2
http://marc.theaimsgroup.com/?t=112541793700006&r
quidquid latine dictum sit altum videtur.
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
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.
Actually, Apple came up with their GUI after seeing a demonstration at Xerox PARC, here's some good reading for you.
-Scott
My other sig is a Glock
Just wanted to say thanks for an intelligent article.
Kudos to the author.
Kudos to the submitter.
Kudos to the editors.
Kudos to the editors (covering for past/future dupes).
All joking aside, it was great to site and read an intelligent and informative article that wasn't based on some form of pissing contest.
chris at darkrock dot co dot uk
http colon slash slash www dot darkrock dot co dot uk
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!
My laptop's native resolution is 1400x1050 and yes it's running at that. The screen resolution is beautiful and graphics are clear and crisp. It's just that when I try to do something relatively graphically intense in full screen for instance play a game, tux racer for example, it splits the screen in half and is fuzzy. Completely unplayable. Kind of like trying to watch scrambled HBO before digital cable came around. Not pretty. I am able to use most of Enlightenments Eye Candy though so I'm not frustrated beyond what I can stand, but it would be nice just to have a driver load and work properly in all screen modes. Yes, I've completely tweeq'q xorg.conf for my screen and drivers, I think it's just something that doesn't work quite right with the driver. Credit must be given however to the people who wrote the driver for what's there. I would say it's 90% of where it should be and driver programming is not an easy task. If this was my main computer it would bother me more, but this is mostly for wirelessly streaming MP3's to my stereo, e-mail, occasionaly web browsing, and maybe some word processing etc.
Generation Trance: What generation are you?
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...
Looks like not everybody is happy with this article. http://www.ussg.iu.edu/hypermail/linux/kernel/0508 .3/1508.html
That is his point, but I don't understand what your objection is. He's not making a theoretical claim, just saying that the reality is that 3D hardware support is better than 2D and the gap will continue to widen.
Also, 3D doesn't necessarily mean a Jurassic Park GUI -- look at Quartz and how it takes advantage of an intrinsically 3D GUI, even if the user is looking at a single plane of overlapping windows.
What I'm listening to now on Pandora...
...during the last two years building the Xegl display server.
He must be using Gentoo. *ducks*
If this guy was really interested in Linux desktop graphics, he would have at least made a passing mention of the Open Graphics Project ( http://opengraphics.org/ ).
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...
Go reread the TFA, paying particular attention to a) the first graphic, and b) the 2nd and 3rd sentences in the third paragraph. They are:
I don't think Jon or anyone else is saying 3D is easier than 2D, but 3D is becoming faster than 2D because most (if not all) design energy is being focused on the 3D pipeline. And, since it all ends up getting blitted out to a 2D screen anyway, why not utilize the bad-ass 3D hardware to accelerate the 2D desktop?
I thought the whole point was that you Linux freaks didn't need no stinkin' pretty graphics?
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.
now they need to get that working and distributed quick, it makes the Apple next door look pretty limp in comparison
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 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.
Not really a proper torrent, but, azureus will open this DHT url:t /announce
dht://395CB97AFF235BABAAFFBE6BB2771353758C370B.dh
4/4MBIT norweigian fibre based seeder.
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
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.
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!
credit to Zack Rusin for the eye candy, nice hacking
clicky
Hello,
I have a Radeon 9000 Pro, which is old by today's standards. Besides OpenGL, is there any benefit from using ATI's proprietery driver over the xorg driver? Things like 2d performance, video playback, compatibility with radeon framebuffer, stability, etc. I can overlook OpenGL since I don't play 3d games anymore.
Even before Render and the compositing extensions, X11 was already the window system of choice for high-end graphics workstations.
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.
The work done on high-end graphics stations done all in render farms, which doesn't even touch X. They only aspect X touches is the interface, which tend to be clunky.
With the recent extensions and RandR, the Linux X server is actually technologically far ahead of Windows and Macintosh again. Please, guys, leave "good enough" alone.
Ahead? Far ahead? In every aspect of what's in wide use, X is playing catchup, which is what Mac OS X (with its threading issues) and Windows are doing with Linux/FreeBSD in terms of performance and stability (for Windows).
Hardware issue. Compare even simple things like the number of pipelines for 3d to the number for 2d on the average consumer card. Its essentially a matter of vendors throwing more hardware at the problem till we get a situation like today where 3d is indeed faster than 2d.
Are you sure it's XGL and not EXA? I believe it is Zack Rusin presenting it, and he was hired by Trolltech to work on EXA.
though pissing contests could yield some intelligent and informative articles about applied hydrodynamics and it's time someone really got on it.
Probably for backwards compatibility, there are still some graphics-cards without OpenGL support.
Security: Currently, X runs as root on Linux. It doesn't need to, it just does. That means 16M lines of code to audit. A set of kernel modules for Linux to handle root access plus running the rest of X under a non-root user would go far in solving this issue and getting wider (aka DOD, ...) acceptance.
Portability: Linux + X does things differently from other *nix + X. X should act more like an OS with the OS interface needed for hardware acess only. This would eliminate a few layers and projects currently handling different issues.
3D vs. 2D: 2D is going away. 3D hardware is cheap and highly accelerated. 2D is not even on older hardware. You can do 2D with 3D hardware. 3D support under X is limited and mostly propriatory...partly because of the kernel (security) and layers (portability) problems.
There is no reason why X can't be updated to handle these problems, though it does take quite a bit of effort and a road map from X.org that currently does not exist.
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."
By the way, the X Window System article will be the Wikipedia front page feature on September 3rd.
http://rocknerd.co.uk
where you will need to download the pdf and read Part I Chapter 7. I keep a copy of the book on my desk (next to my RHCE study book as a psychic counterweight) and often refer back to it whenever I've spent too much time with things like X configuration.
It's very funny, even more so when you know just a little bit of Unix and even more than that when you know too much which is to know any, really. ; )
If my grammar and spelling are off, I am [distracted/tired/careless] (take your pick)
Yet one man can write a kernel.
Just because it CAN be done, doesn't mean it should!
(to both your questions)
Drawing your windows quickly;
Speeding screen updating in power-demanding apps (e.g. video);
Freeing your CPU to concentrate in your programs' data instead of in the screen's eye candy;
Making your screen convey more information about your computer's and your data's status.
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
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
One area the article didn't touch on at all was MPEG decoding. Most video cards today have hardware to accelerate decoding of MPEG2 video. Some even have MPEG4 acceleration.
For lo-res stuff, like DVDs, this is not a big deal because modern CPUs don't break a sweat decoding that stuff. But, when you go to HDTV (1920x1080i / 1280x720p) video, even fast processors feel the load. In Windows, there is a standard API (DxVA) which is supported by most video drivers. In the Linux world, there is similar support, but it's a bit trickier..
Linux XvMC API - Enables hardware offload of iDCT and Motion Compensation in MPEG2 processing. The API is relatively new, and support has recently been added to key applications (MythTV, Mplayer, Xine, (vlc?) ).
NVidia - supports XvMC in their binary / closed source driver releases. XvMC is suported by their newer FX series cards (and newer), and GeForce4 MX cards. It is not supported in the hardware of the other GeForce4 cards.
ATI - No support for XvMC in Linux. (ATI was the pioneer of the MPEG2 acceleration hardware, available in their Radeon line for many years. But, they don't support this at all in Linux.)
VIA/S3 Unichrome - There is a Unichrome driver project on sourceforge, which supports the excellent MPEG2 accleration of the Unichrome integrated graphics processors. (Though, it's not clear to me if it's completely open source or relies on VIAs closed drivers/libraries). The S3 MPEG2 processing is beyond normal acceleration. They do full MPEG2 decoding in hardware - which allows for HDTV display with very low CPU requirements. S3 also has standalone video cards (DeltaChrome, GammaChrome), I don't know the state of Linux or MPEG2 support for those. The Unichrome also has hardware support for MPEG4 processing, which is not yet supported in Linux.
Others - Any other Video cards with XvMC support in Linux that I missed?
--- The MPEG2 acceleration support in Linux is not great yet. But, at least it's better than MacOS.. In OS X, the DVD player is built with MPEG2 acceleration support, but no other applications can use it (there is no open / published API). So, HDTV display has ridiculous CPU requirements (Dual G5 is stated as required for the ElGato EyeTV 500). The vast majority of Macs have video hardware that supports MPEG2 accel, but none can actually use it.
The problem with OSS is the last 5% (polishing) never gets done because it requires grunt work and skill sets that many OSS programmer are unwilling and/or unable to do.
Why doesn't it get done EVENTUALLY?
What instead happens is people add more features to the 95% as well, and this means more polishing is needed for those features, so they are adding to the 5% that needs to get done as fast or faster than anybody is working on it.
Eventually people abandon the project for a new one or a rewrite or such a major change that a lot of work on polishing is either lost due to non-use or needs to be majorly reworked or redone.
OSS needs to have a system where a version is freezed and it can only be polished and bug fixed after that point, and at least 50% of the developers time goes into that rather than the next great version.
We need to be sen as providing a professional level solution.
Users and companies don't want to have to deal with bugs, workarounds, weird things needed to get things running, broken features, missing or inaccurate docs, etc.
Just because it CAN be done, doesn't mean it should!
Next, a lot of standard features are referred to as "Linux" features. From the concept of kernel drivers to virtual terminals, these are implied to be Linux only features.
In my opinion, the architecture overview is OK. However, all statements about what isn't available on non-Linux platforms should be disregarded.
Eivind (FreeBSD developer).
Doubting the existence of evolution is like doubting the existence of China: It just shows that you're uninformed.
Why not? Because video card manufacturers won't release the docs for their videocards, so very few cards have open-source drivers with 3D support.
Making the X server only work on one specific videocard would allow for extensive optimizations, but that isn't practical, just as depending on 3D support isn't currently practical.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
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!
Stop whining, Jon. We got your point. We did a long time ago.
-- The Online Photo Editor - http://www.phixr.com
If you compare the 2D performance of an ATI Rage1128, Radeon 9000, and a Radeon X850 you will discover that they all perform about the same. But if you compare 3D performance of the X850 to the R128 you will see a 500:1 improvement.
Your 2D performance comment just isn't true. You are comparing modern video hardware to ancient 5+ year old hardware. The Rage128 had SDRAM while the newest ATI cards use DDR2. This is a massive increase in bandwidth. This alone has a dramatic impact on X 2D drawing speed.
If you truly believe that a Rage128 has the same performance as a X850 then please show me the x11perfs. I would really like to see them.
Maybe because the 3D operations take a lot more processing power than 2D. There isn't all that messy z-buffer interpolation and such on a 2D screen.
There comes a point where an algorithm is as optimized as it can ever be without losing information...the same way it works for compression. After 20yrs if intense development, 2D graphics have reached the point where adding transistors will not speed the process. 3D graphics are exponentially more difficult and require more transistors (and we haven't even finished adding all the features, let alone the optimizations, yet).
I'll believe a 3D pipe is faster than a 2D pipe on 2D graphics when I see the benchmarks.
Aah, change is good. -- Rafiki
Yeah, but it ain't easy. -- Simba
yet another "replacement" for X11. Cairo does sound like a better replacement than previous attempts. But my money is on it falling flat on it's face like all the others.
Luckily the application base for X11 is relatively small and mostly open source. So replacing X11 won't be that painful. Also things like Cairo do provide some compatibility between different systems.
LGPL is kind of a weird license though, I'm not confident it's appropriate for Cairo. but I suppose if Cairo really does turn out to be good alternate systems written to it's specification can be implemented.
“Common sense is not so common.” — Voltaire
One question. Will I ever be able to get graphics and graphic performance as good as Windows or OSX without having to use a proprietary driver?
Don't blame me, I didn't vote for either of them!
Go dig around in the Cairo list and look for benchmarks. Cairo on glitz (3D hardware) benchmarks at 100:1 faster than xlib (2D hardware). That is part of what prompted the development of EXA. But EXA is not true 2D, it is using the 3D hardware for it's implementation even though it only exposes a 2D API.
And yes, I also read http://pascal.tsu.ru/en/xkb/ .
Test 1 2 3 4
I just went to the guys website and it seems like you are all mad at him or hes mad at you ...whats going on??
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...
Yet one man can write a kernel.
Just because it CAN be done, doesn't mean it should!
very nice
||| I still can't believe Parkay's not butter.
Same here... :o/
I have some observations:
... Ok. I do like some eye candy. And I'll go further: for some applications, I need some eye candy (transparent windows), especially for geo-referenced ones (which I do work with from time to time). And for those applications, the slowness of the rendering is a productivity drag for me.
... this is just another, special case of the last point. One example: I need to know what is my CPU/Board temperature, and if the program monitoring those data is grabbing 2% of my CPU just to sit in the background, updating a small display, something is wrong and can be improved.
* Drawing your windows quickly. You say your windows are drawn without draining your productivity. Mine (AthlonXP 1800+, 1/5GBRAM, doubles as workstation and firewall, runs some services which are important to me [mldonkey]) aren't. I can take some 100x acceleration in the rendering (RTFA).
* Speeding screen udpating in power-demanding apps. My PC does NOT play DVDs full screen without acceleration... not even with xv it does play DVDs full screen without skipping some frames.
* Freeing your CPU
* Making your screen convey more information
All my answers are based on what improves my experience.
HTH
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
I've tried that as well. I had installed Fedora FC3, Redhat 9, Suse 9.2, Mandrake 10, and Gentoo. I finally went to Fedora FC4 because my buddy happened to have it with him on DVD when he came over and I was tired of fighting it.
Generation Trance: What generation are you?
Well said. I know this is fanciful, but wouldn't it be fun to buy a bunch of graphics cards, jump through whatever hoops are necessary to avoid agreeing to any end-user license agreements, sit down with a stack of patents and decompile all the drivers? Sending each vendor documented evidence of how their competitors are infringing their patents would be worthwhile for the resulting fireworks alone. With a little luck the relevant lawyers would begin advising vendors to use commoditized methods of communicating between motherboards and graphics cards so they would have no furher excuses for withholding specifications.
Say, the nv driver using the normal 2D apis vs. Xegl doing sw OpenGL?
what will/would Xgl run under? For example, how will it do xlib?
I presume the whole input system will just be ported to xgl in some fashion, instead of being rebuilt?
Myren
(posting from a proxy because my Slashdot posting record incurred lurker moderation from some hateful users.)
DirectFB is a good offer compared to all others. Linux graphics is not a bloody mess; there is a large choice of graphics rendering targets and each one has its quirks.
DirectFB is an example of how ease and simplicity to build software for a use should be. If you want a graphics target specifically refined for Linux, then consider DirectFB. On that project page, there are similar hosted projects that bring it all together for a complete alternative and replacement for other X servers and bindings for tool-kits of greater popularity, as well as retaining compatibility. The graphics hardware support on DirectFB is limited to companies willing to document the hardware; thus, Matrox, 3Dfx, and ATI, Trident, some nVidia, and a couple others have optimized accelerated framebuffer support. Then to top it off, there is a related project that binds DRI accelerated openGL into the framebuffer without a X server, DirectFBGL (currently available only for Matrox hardware, but soon for ATI). Then aside from accelerated openGL of DRI in an accelerated framebuffer, there is a rootless X server package called XDirectFB.
It's GPL, it was at FOSDEM, and it is specific for Linux. Anyone willing to bite on this software will avoid the large, complex, picky, software projects and the competitors known to be successors, and protests of existant alternatives thatslowly become worse than the cause of the move; allthewhile retaining compatibility.
without prejudice
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
I also have 1400*1050 (native) resolution on my laptop, and sure it is nice and crisp, but consider the amount of processing going on at 1400*1050 for a desktop display (even with whatever widgets you use) is no thing compared to even just 800*600 fps games. Its not the driver's fault, you're comparing completely different ball games. If I tried to play CS:S on 1400*1050 with by 32MB Ge5200 (fine for the desktop, probably not as good as yours as its old and wasn't cutting edge at the time) my computer would freeze to a piece of stone.
Is it just me or is a bunch of stuff here being scooped out of yesterdays OSNews :)
therefore he cannot be hired by IBM.
(former IBM employee)
This is one bit of data I wouldn't mind seeing; are they relatively similar?
Of course, I'm simply curious...
-- Sometimes you have to turn the lights off in order to see.
Seriously I was losing hope for Slashdot. But posting articles like this remind me of the old days. Thank You.
The best education consists in immunizing people against systematic attempts at education. - Paul Feyerabend
You Macintosh zealots really are jerks: modding something down as a "Troll" because you disagree with it.
Thanks for showing again what kind of people we find on the Macintosh: insecure little nerds unwilling to engage in a discussion.
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.
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.
To get job done
Or let it die because of non free drivers.
[My english is better than most other people's Turkish, so please point out mistakes politely. Thank you.]
It "works" in that it can be used to demonstrate the concept. However, after many months, it is still quite ugly and extremely unstable. This is with the most stable configurations (x86, fx5*00, nvidia drivers)...
My time in the OS world makes me aware there will immediately be an obnoxious "it works for me, nub!" comment below this. Just FYI, these person(s) are lying.
Also, mythtv is not exactly cranking out releases these days...
Fortunately a 3ghz CPU and xv is an adequate substitute.... still, the situation is laughable.
The OP brings up some very good points. How
the heck can this get modded '-1, Troll'?
You would do well to contemplate some of
the issues that he brought up.
Hellooooo .... XKB is the X keyboard event protocol used by XFree86, Xorg, and hence most linux systems.
The topic is linux graphics, so how is this Offtopic?
Test 1 2 3 4
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.
Right now, X is still one gigantic project
X isn't a project at all, it's a protocol. It's a protocol that has been around for many years and that has been implemented indepedently by many vendors.
X.org is one of those implementations. Most of this discussion is about the software architecture of that implementation and related implementations.
Traditionally, MIT X11 and XFree86 (from which X.org is derived) have been the worst of the X11 implementations. If you needed to get a really high performance, high quality X11 implementation, you'd buy a commercial one. But X.org has improved things to the point that it's good enough for most users. On the one hand, that's a shame because it makes commercial X servers less and less profitable, on the other hand, it's good for open source.
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.
Accepted by who? You can release whatever binary drivers you like. X.org probably won't ship them with the server, but that's not stopping nVidia or ATI, and it's not a problem.
You can also plug into, or ship, a commercial server. X.org isn't your only choice, you know, and traditionally, commercial servers have had the best support for accelerated graphics.
Through the years I have tried out Suse, Ubuntu, Debian, Gentoo, Yoper, Beatrix, Knoppix and Mepis, and although they all had their weaknesses and strengths, the only thing that always worked flawlessly was gimp-print with the three different printers I have at home (BJC 265, i250 and HL-1430).
Maybe there are other issues with your setup?
"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"
Translation: The bazaar isn't everything promised to us, so it needs big help from the cathedral, even though we bad mouth them every chance we get. e.g PHB's
The parent has glued together two comments from OSNews, made some minor alterations and tried to pass them off as his own.
No. Linux is a kernel. It wouldn't be the death of the Gnu OS either. There will ALWAYS be a way to have a pure Linux. People work to make that a fact today, and people will work to make that a fact in the future.
What it will kill is forcing people that use Linux and the Gnu OS to respect the Libre system. Because many don't, and you can't make them. They install the codecs, the Java, the closed games, the closed drivers, etc. because often they are better than the open solutions or they "just work." Should these people be forced down the path of the GPL lovers? Should Linux ONLY be for people that respect Free Software?
I don't think so.
In that case, you may as well go with "Microsoft Windows XP (r)".
Big jump there. So you are being very black and white about this. To you, using any closed software in an open system is as bad as a closed system. And Gnu fans wonder why they are called "hippies" and why people don't get their philosophy.
Its not lack and white, its grey. I can use and appreciate both kinds of software without my head or hardisk exploding. I like my Nvidia card. I bought it for the quality of its closed driver! With that driver I can play with Xcompmgr, play games at high frames rates and do many other things NO open source graphics driver provides.
Graphic cards are hard to make drivers for (look at ATI's problems on both platforms), even with the blueprint. Opensource development doesn't come for free, but companies like Nvidia (many ATI after Xorg makes big changes) are willing to spend the resources needed to do it as long as the code is not free. I accept that. Most of the market would. You would prefer to be years behind the market if only to be free. The Gnu OS should have both options...not just yours. And both are worked on, because that is what freedom is all about.
GNU is for the whole world, not just Libre zealots. Sorry to tell you, but that is the price YOU pay for freedom.
Open Source Sushi
X is a pain, The more I read about it, the more horrible it seems to be.
At some point the backwards compatibility with old mistakes should be thrown out.
I'm not hopeful for X11R7, I want X12.
nVidia DOES NOT DO OPEN SOURCE!
There is no way to learn, modify, or tinker with their driver.
And, they seem to like it that way!
My point still stands -- and I do own some nVidia hardware (and nVidia shares, and Microsoft shares, *and* ATI shares). Put the closed source driver in, and it just isn't Linux. It may be YOUR operating system, or a commercial operating system, or something else.
But if I can't tinker with it, I wouldn't call it Linux anymore (or GNU/Linux, etc.). That's what the "taint" flag is all about. A clear sign that the kernel has left the open source arena, and a hint that much less support is available.
Now, you claim I am "black and white" over this issue. And I am. Doesn't mean I put down nVidia (or any other closed-source vendor -- except Microsoft and Apple -- for different (and personal) reasons). In fact, I support you! I love Microsoft Windows users! (that market has supported me for a long time).
Just don't fall into the trap of thinking that nVidia somehow supports "open source". They don't. Nor does ATI.
Ratboy
Just another "Cubible(sic) Joe" 2 17 3061
I just had a new learning experience dealing with XLib (Reminds me of Macintosh programming from the 80's), I would have rather ported a Win32 program to Linux using a different interface. The program in question was 95 percent C/C++ code with 5 percent for GUI user feedback (Close and About buttons).
There needs to be a common GUI wrapper library for Gnome/KDE/GNUStep whatever. The reason I had to use XLib was because some clients used KDE, while others have XFCE. I coded to the lowest common denominator, X11.
Microsoft/IBM (OS/2) did something right when they wrapped the display calls around a common API. Linux/Unix can't touch the simplicity of CreateWindow() , GetMessage() . and MessageBox() .
Don't get me wrong, I'm an advocate of desktop choice. I use XFce4 at home and work while the cube mate next to me and my wife prefer KDE. I would just enjoy a common wrapper widget/library for X before we start worrying about how X draws the screen.
Side rant, what jerk decided to split all the Gnome functions into separate libraries. After installing the base gnomelibs I shouldn't have to install libxml, libbonobo, pango etc. On top of that they are all version dependent. I already have a DLL Hell poster, do I need a SharedLib HELL one as well? For the love of God, freeze the library calls. A user who downloaded and uses a Gnome 2.x program has every right to expect that program to work with Gtk 2.4.
The humble opinion of a working embedded Win32/Unix programmer who freely admits he doesn't know everything. Feel free to flame or better yet, offer alternative solutions.
Enjoy.
It's just the normal noises in here.
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.
> 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.
speed
I make my living as a graphic designer and I've been dualbooting gnu/linux on my desktop since 1993/4 (SLS floppy distro if you must know). I do Web and Application Programming on the Unix side, and DTP and Design on the Win32 side.
;(
Now that you know where I'm coming from, I'll let you into a dirty little secret from the smelly trenches of Real World design work. A little home truth that the X11/Glitz/OpenGL/XAA driver boys and the DR17 eye-candy merchants don't want you to know: Infrastructure and X11 and OpenGL and what have you arent things that we designers worry about too much.
For those that are deaf and can;t hear the frustration in my voice I repeat: CREAKING GFX-INFRASTRUCTURE IS NOT A PROBLEM THAT GIVES DESIGNERS SLEEPLESS NIGHTS IN THE REAL WORLD.
However, the main reason I still need to dual boot and suffer the pain of win32 apps, more than TEN years after starting using GNU/Linux, is the continuing lack of USER SPACE GFX APPS.
No production grade Free Software replacements for Flash, CorelDRAW/Illustrator and Pagemaker/InDesign exist.
'Well why don;t you use MacOS X then' is the answer I usually get, but that's the whole f-ing point! I don;t wan to have to run MacOS X in the first place, I want to be able to run GNU/Linux or FreeBSD or Solaris or IRIX or whatever and have Free Software gfx apps.
But no, the best minds of the Free Software waste their energy copy-vating the Apple Finder and MS Office, and a building a better webserver. Well Hurrah Bloody Hurrah.
I herewith go on record in stating that from a designers point of view, Free Software is largely a bitter disappointment.
PS. There might be three or four apps that sort of make the grade but that's mainly because I like GNU/Linux and wish to be charitable. In truth they suck too
- It took western civilisation 2000 years to ensure popular literacy, and now we work with icon driven GUI's. Go figure.
wxWidgets (http://www.wxwidgets.org/) does the job. I know, it's not a complete abstraction layer, but it's good enough for applications such as Audacity (http://audacity.sourceforge.net/). You can see a list of some applications that use wxWidgets at http://www.wxwidgets.org/apps2.htm).
It's fast, well designed (although not *that* good, in my opinion), and mature.
Ezequiel
For those who are interested, the sig in question was:
More info is available from various interviews and magazine articles found via Google.
The things you learn from the old hands... Thanks for the tip. This is the kind of stuff which probably should have made it into the Wikipedia...
Interesing Malda quote, which fell out from that research: "You can go to CNN and see very straight-laced, spell-checked, fact-checked summary of the day's events. Or you can go somewhere like Slashdot..."
"Go to CNN [for a] spell-checked, fact-checked summary" -- CmdrTaco
I'm going to create a new X extension called X3D which will be the FINAL answer to accelerated X. No more messing around with EXA, XAA, XRandR XRender, XKB, XBar, and XFoo. This baby weill be it!!
So there, Keith Packard!
PS. Expect X3D to appear a year after Vista is delivered.
If accelerated, the X server would have redrawn moz's window without calling moz at all, except for any damaged part of the screen. This way, any text you were reading in moz will show up; you can then click on the scroll bar and *then* moz would have to be swapped back in.
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
Does it need to be supported by upper Xegl or is it the job of the underlying hw-drivers?