New Acceleration Architecture for X.org

At the recent European X.Org Developers Meeting KDE developer and Trolltech employee Zack Rusin presented a new acceleration architecture named Exa (eyecandy X architecture) for X.org. Being based on KAA (KDrive acceleration architecture) it's designed to be an alternative to the currently used XAA (XFree86 acceleration architecture) with better acceleration of XRender which is used by composite managers for desktop eyecandy effects. The next X.org release which is expected to contain Exa is planned to be released in September.

Making existing graphic card drivers using XAA take advantage of Exa is said to be easy and Zack volunteered to, besides bringing Exa into X.org, to port all unmaintained graphic card drivers as soon as he gets the respective hardware in his hands. Exa is meant to improve the desktop experience and bring users some much needed eye-candy while Xgl, an X-Server layered on top of OpenGL is being worked on.


Outstanding. The instant-gratification part of me is happy this is being done on two stages (KAA then Xgl) as opposed to having to wait for Xgl. Any news about the Unichrome chipset's support? I could perhaps lend a hand.

By Erik at Tue, 2005/06/28 - 5:00am

What kind of timetable is Xgl running on? Anyone know when we can expect it to come out?


By Simon Edwards at Tue, 2005/06/28 - 5:00am

> Anyone know when we can expect it to come out?

When it's done. ;)

By cl at Tue, 2005/06/28 - 5:00am

and even if Xgl is out we still depend on the proprietary/binary-only drivers that come with the graphic cards...
if those drivers continue to be unoptimised and of poor quality the real power of our modern graphic monsters will remain unused.

anyway, what zack is doing will probably help pushing X' desktop graphics to an acceptable level.

thanks zack!


By cies breijs at Tue, 2005/06/28 - 5:00am

Well, apart from those of us getting reasonable performance out of the free drivers in Xorg :)

By Tom at Tue, 2005/06/28 - 5:00am

i dont know, but, is there any free (as in Freedom) driver for the recent 3D graph cards?

By cies breijs at Tue, 2005/06/28 - 5:00am

No, not really. Next time don't throw away your video card just because some pimply kid makes fun of your "obsolete" system :-)

By Brandybuck at Tue, 2005/06/28 - 5:00am

Hey- that statement isn't exactly fair to those of us who (inexplicably or accidentally, of course!) destroy our hardware. ;)

As far as the nVidia cards go, the (proprietary) linux drivers have performed very well. I have yet to have an issue with the speed of my rendering, and I've been using their driver for a few years now.

It supports all of the features available on windows, and it even has its own configuration program. :) nVidia seems quite devoted to the cause.

Note: I have a desktop card (GeForce), not a workstation card (Quatro (?)).

By Zak Jensen at Tue, 2005/06/28 - 5:00am

You can still buy the (DRI supported) Radeon 9200s. They're really cheap, needs no fans, and some models comes with DVI so it's a perfect product right now. But they probably won't be available in another 6 months, since they will stop producing the chipsets.

By Jonas at Tue, 2005/06/28 - 5:00am

Bought an 9250 some days ago. Works fine with the OS drivers, has DVI+VGA+TV, 128MB and passive cooling. It also work with AGP 2x-8x (3.3V, 1.5V and 0.8V signal level), which I needed for my really old motherboard (GA-7ixe4, SDR-RAM, Duron 700). Nice and cheap card.

If you need more power, there is the 9550, which is supported by the r200 driver, and for newer cards (r(v)3xx and r4xx series) support is on its way (http://r300.sf.net/), Quake3 already working.

By Lurchi at Tue, 2005/06/28 - 5:00am

Haha, I love the comment about the no fans. They should hype that as a feature in fact.

I hate the fans. So noisy and annoying.

By KDE User at Wed, 2005/06/29 - 5:00am

So it's a new 2D acceleration layer which doesn't use OpenGL, how is it different from Evas ?
Is it specific to Qt and does it need any modifications beside video drivers ?

By thom at Tue, 2005/06/28 - 5:00am

Its not dependent on any toolkit, not like Evas which is part of a toolkit. It's in the Xserver and not specific to Qt. It does not sound like it needs any modifications besides the video driver, it's a replacement for xaa.

By Morty at Tue, 2005/06/28 - 5:00am

well, it is part of X11, and evas is not. i guess evas is specific for enlightenment...

it has nothing to do with QT, afaik, all it has to do is replace XAA (and be faster).

By superstoned at Tue, 2005/06/28 - 5:00am

evas is a generic graphics library, it doesn't depend on Enlightenment, much like imlib which was also created by E crew.

By Anonymous at Tue, 2005/06/28 - 5:00am

Because evas is a fast canvas library. This is an in-driver architecture to let drivers accelerate primitive drawing operations they couldn't before, and do existing ones much more simply.

Evas (and Cairo) provide a simple and optimised way to do things like say "draw an antialiased line at 50 pt width on a 1m canvas scaled to fit my 400x400 px window" without the app author descending into sobbing fits. XAA and friends help the graphics card driver do the underlying "draw this antialiased 5pt line from (x1,y1)px to (x2,y2)px on :0.0" *really* *fast*.

Evas, Cairo, etc can't reach into the graphics driver level and use hardware specific graphics tricks. XAA and friends aren't a drawing API, they're an acceleration framework. The two really have basically nothing in common, except in that the former can use tha latter.

By Craig Ringer at Tue, 2005/06/28 - 5:00am

nice post. to all others doing a "what about debian" in a slack topic, leap.

By jenga at Tue, 2005/06/28 - 5:00am

well, i think it is not bad to ask about technology that seems to be related. not only because it can be informative (i didn't exactly know the diferences as the parent did), but also point to duplication off efforts - which CAN be a bad thing.

By superstoned at Tue, 2005/06/28 - 5:00am

Everything of E17 is duplication, otherwise it would be a concerted effort together with X, GNOME and KDE.

By ac at Tue, 2005/06/28 - 5:00am

since the things in E17 came first they are being duplicated. Try getting your facts straight before troll... wait nm. Trolls don't get there facts straight.

By illogic-al at Wed, 2005/06/29 - 5:00am

Thanks for your answer,
So will Qt use Cairo or something similar (is it arthur) on top of EXA ?

By thom at Wed, 2005/06/29 - 5:00am

By Anonymous at Wed, 2005/06/29 - 5:00am

Qt Arthur will use XRender that is accelatered by the graphics drivers use of EXA.

By ac at Wed, 2005/06/29 - 5:00am

Thanks for improving X and Desktop experience. Thanks in advance :)

By Asif Ali Rizwaan at Tue, 2005/06/28 - 5:00am

Yeah, Thanks Zack! This guy is really a talanted hacker!
Trolltech: pay him good!

By blacksheep at Tue, 2005/06/28 - 5:00am

Plasma here we come!

By Ryan at Tue, 2005/06/28 - 5:00am

"Zack volunteered to port all unmaintained graphic card drivers as soon as he gets the respective hardware in his hands"

Where did Zack suddenly get the whole knowledge to promise and do something like that? I didn't know him doing any hardware driver development before...

By ac at Tue, 2005/06/28 - 5:00am

Do you think that he knew something about Mozilla code before hacking on it at aKademy? :-)

By Anonymous at Tue, 2005/06/28 - 5:00am

When he says "port", he really means switch some function calls around so it uses the Exa framework instead of XAA. Only the most basic primitive will actually be accelerated in hardware (and even then, only if the driver already accelerated them before).

Porting a driver to Exa appears to be really simple, due to clever design by Zack, so porting a driver is mostly a formality. Still, you obviously need to have the hardware and do testing on it (which is usually the far more time-consuming part in driver development if it's to be done right).

By Nicolai Haehnle at Tue, 2005/06/28 - 5:00am

It's not needed because of the way he implemented Exa, from the anoncement "Note that you don't have to be a driver developer to switch any of those drivers."

By Morty at Tue, 2005/06/28 - 5:00am

But it's Zack himself who made that possible so he has to already have quite a knowledge about the whole graphic card driver architecture which again involves plenty of hardware details.

By ac at Tue, 2005/06/28 - 5:00am

Zack is not really human. He's the last member of an advanced überprogramming alien race, kind of like Superman but with a text editor instead of laser eyes.

His only weakness? Battlestar Galactica.

By Chris Lee at Tue, 2005/06/28 - 5:00am

+5 funny

By superstoned at Wed, 2005/06/29 - 5:00am

... let the Slashdot begin...

By Leon Mergen at Tue, 2005/06/28 - 5:00am

Will there be any progress with subpixel antialiasing? What does Eye Candy help when the fonts are still ugly displayed (yes, I switched subpixel hinting on in KDE)

Best wishes

By mm at Tue, 2005/06/28 - 5:00am

qt4 has all the features you need , help coding / porting today !!!

By asdasd at Tue, 2005/06/28 - 5:00am

> Will there be any progress with subpixel antialiasing?

Subpixel hinting is ready to use. Maybe you should select another hinting modus or activate the bytecode interpreter.

> What does Eye Candy help when the fonts are still ugly displayed

subpixel hinting + hinting=full gives very clear fonts.
subpixel hinting + bytecode interpreter gives *sometimes* even better fonts.

By Hans Chen at Wed, 2005/06/29 - 5:00am

This has absolutely NOTHING to do with what's mentioned in this article.

Try enableing the Freetype Bytcode Interpreter to improve your fonts.

By zxcvzxvcv at Wed, 2005/06/29 - 5:00am

Anyone find it funny that these K-initial technologies are in no way related to KDE (in the sense that the K in their name is not from KDE)

By Renato Sousa at Tue, 2005/06/28 - 5:00am

Nope, it's just like with the Linux kernel which uses k all the time as well. (Maybe I'm just unfunny.)

By ac at Tue, 2005/06/28 - 5:00am

Which brings up a good point, we should port the kernel to Qt :)

By Jake at Tue, 2005/06/28 - 5:00am

Dude. Just imagine the power of QT signals in the kernel, and you can see the potential.


By Zak Jensen at Tue, 2005/06/28 - 5:00am

"make xconfig" is using qt...

By Hans Chen at Wed, 2005/06/29 - 5:00am

That's the reason why it had to be replaced/improved ;-)...

By Anonymous at Tue, 2005/06/28 - 5:00am

I use the binary 2d and 3d hardware accelerated driver from Nvidia.
Will I still see a speed/flicker improvement in X?

By ac at Tue, 2005/06/28 - 5:00am

Nvidia signaled to support Exa in their driver.

By Anonymous at Tue, 2005/06/28 - 5:00am

Current COMPOSITE feature crashes a lot of applications. How about this one?

By wangxiaohu at Tue, 2005/06/28 - 5:00am

Here here!

Stability of the composite extension is erm... non existant? :)

I've gone through two graphic cards (granted, both nVidia (GeForceMX460, GeForce2GTS), and two completely different hardware platforms (Athlon 1.3, and Athlon64bit3200+), both give lockups consistantly after using xorg with the composite extension enabled after about 1Sec-1Min of use..

I want my pretty desktop damnit :P

By Jack at Wed, 2005/06/29 - 5:00am

the kde composition support is much more stable for me. maybe it helps...

(so dont use xcompositemgr but enable shadows and transparancy in kwin)

By superstoned at Wed, 2005/06/29 - 5:00am

works good for me! nvidia geforce 6800GT with the kde configuration tool in control center.

I don't get any crashes but sometimes windows forget to stop being transparent after I move them or change the size. Oh, and some games flicker a bit.

By Vlad Blanton at Mon, 2005/10/03 - 5:00am