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."
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.
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
It's opensource and as available as can be from https://lg3d.dev.java.net/
Looking Glass is a move akin to flexing your muscles at the gym. Sun just wanted to prove "their stuff" to Microsoft and Apple, demonstrating a desktop technology demo.
It's barely usable and already been opensourced because, once shown to the press, it had little use to them.
Hack your mind out of its sandbox.
>the toolkit --> the X server --> and the driver/hw!!
i vers/hardware
>When I saw this (App->gtk+->Cairo->XRender->Xgl ->GLX(X)->GL->hw) it blew my mind..
Well it is really more like this
App->toolset->Cairo->XRender->Xgl->GLX(X)->GL->hw
|___App______||__Xserver_______________||OpenGLdr
(might not be lined up)
It is in fact the 3 part system that you think it should be, however it (for many diffent reasons) spilt up into subparts.
Like if I where to show you the way a file system works i might draw:
App->API->driver->hardware
when it is more like:
App->API->filesystem driver->device diver framework->PCI bus driver->PCI to IDE controller driver->Disk driver
It is still in the same 4 parts as it was shown in the first but this( 2nd one) is more detailed.
And as this is "News for nerds" surly we should crave the more detailed account.
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...
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?
um, ATI radeon 9250, AGP 8x, running 100% open-source drivers, no problems at all, and a working 3d acceleration. Tuxracer runs nice, so does quake3. Oh, X.org and kernel 2.6 and debian/sid.
And did I mention it has passive cooler? no noise at all.
What problems?
--Coder
Not really a proper torrent, but, azureus will open this DHT url:t /announce
dht://395CB97AFF235BABAAFFBE6BB2771353758C370B.dh
4/4MBIT norweigian fibre based seeder.
credit to Zack Rusin for the eye candy, nice hacking
clicky
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.
By the way, the X Window System article will be the Wikipedia front page feature on September 3rd.
http://rocknerd.co.uk
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.
I resent having to pay again just to play them (with varying degrees of (un)playability) on Linux
You can download Cedega for free from the CVS. You can find a tutorial here.
Let me apologize for my poor level of English...
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.
I didn't brush the open driver issue off, I simply chose not to address a topic that is the source of a lot of controversy. I am well aware of the problems of obtaining driver documentation.
X just needs to make a choice, continue with the flat-lined 2D performance or make the jump to the 3D hardware. If X chooses 3D I would much rather see if use a well designed, standardized API like OpenGL than to slowly extend the existing code base to start using 3D features like EXA does.
If you want open 3D drivers go lobby the hardware vendors to release code and specs. However, I think it is wrong for Linux to ignore the immense performance gains available from the 3D hardware on the grounds that the hardware is not completely open. Withholding use of 3D hardware on Linux will do nothing to open the vendors and it will definitely result in Linux having an inferior competitive desktop experience.
Have you considered that the opposite effect might happen? It Linux builds an excellent 3D desktop and attracts a lot of new users the hardware vendors may start to take Linux seriously and open their specs.
The problem with binary-only drivers is that older products can't be supported by the community, if/when the maker decides to stop supporting them. A real-world example is that Nvidia has stopped supporting older cards (do a search for "TNT"). I can understand not wanting to provide Linux drivers for the aged TNT series cards (despite owning one), but the original GeForce and the GeForce 2 aren't supported any longer either. I'd like to think there's some kind of technical limitation, but the realist in me thinks it's a marketing or cost-cutting measure.
Another problem is that binary drivers may be limited in terms of kernel support. Support for the 2.6 kernels would a must, but what about 2.4? How will the driver situation change when the 2.7/2.8 kernels are released?
Binary drivers are a "quick fix" for a problem, but not a long-term solution.
kde will have kdemm (kdemultimedia layer)
:)
and that layer will then allow you to select a backend. and one of the will be arts...
but it can be left out.