Monday 30 May 2005
Xgl
David Reveman just demoed his latest Xgl work (an X server based on Glitz). It's incredibly impressive. He has virtual desktops as the faces of a cube, so you can switch desktops by rotating the cube. Then he played a movie in a translucent window, crossing a virtual desktop boundary so it wraps around the cube. Of course it keeps playing while he rotates the cube. All very smooth and pretty. Amazing.
It looks like on Linux the preferred hardware acceleration story for rich apps like Mozilla/Firefox will be to run the Xgl X server, and have Cairo talk to Xgl via Xrender. Xgl implements the Xrender calls using GL so we get the same sort of hardware acceleration we'd get if we used Glitz directly. With only Xgl talking to the GL drivers, we avoid the problem that the vendor GL drivers aren't very good at handling multiple processes banging on them simultaneously. The only downside is that Xrender doesn't support some of the operations we need accelerated --- e.g., gradients, non-affine transformations, and SVG-style filters. We'll just have to fix that :-).
The story on Windows remains a bit less clear...
It looks like on Linux the preferred hardware acceleration story for rich apps like Mozilla/Firefox will be to run the Xgl X server, and have Cairo talk to Xgl via Xrender. Xgl implements the Xrender calls using GL so we get the same sort of hardware acceleration we'd get if we used Glitz directly. With only Xgl talking to the GL drivers, we avoid the problem that the vendor GL drivers aren't very good at handling multiple processes banging on them simultaneously. The only downside is that Xrender doesn't support some of the operations we need accelerated --- e.g., gradients, non-affine transformations, and SVG-style filters. We'll just have to fix that :-).
The story on Windows remains a bit less clear...
Comments
And how'd you implement this on OS X?
On 10.4 at least, I guess you could rely on the CoreImages stuff that is build in.
I don't know if there's any Xgl demo screenshots online.
http://osnews.com/story.php?news_id=10108
Its near the end. :)
While I use Linux, I'm also on Windows a fair share of my time.
I think this is a really cool advancment. I wonder if Longhorn will jump at the last moment and try to mimic this effect...
Hah- Imagine having a two-moniter system and being able to have eight possible screens... or for web development, have html editing on one side, css editing on another, photoshop or the gimp in another, and the page you are preiviewing all on diffrent sides. And being able to look at angle so you could edit the html and then refresh the page and see both the code and screen in full screen... that'd be awesome.
http://lists.freedesktop.org/pipermail/xorg/2005-May/008105.html
lol, that's the best turnaround time for a request I have ever seen! :-) 17 minutes!?!?
Jed: Hopefully at some point soon, Linux users will be able to install Xgl and get accelerated rendering of cairo-using applications such as Firefox. But that obviously won't work for Windows. We can have an OpenGL or Direct3D backend for cairo but on non-Longhorn systems, we'll run into the issue that D3D and OpenGL drivers probably won't behave well when multiple applications are trying to use them at the same time. If Firefox is the only application running that's using the drivers, that might be OK, but suppose the user starts Firefox and Thunderbird... I can imagine we might want to special "cairo acceleration server" that runs on Windows, accepts Xrender-like commands over a pipe and sends the results back to the applications via DIBs in shared memory.
Shouldn't the drivers handle requests from multiple applications? Because if what you say is true, this means that I cannot run two 3d rendering applications at once (if they both use opengl).
I was really surprised to see both you and David Reveman in the Guadec "Lightning Talks". You should link people to it. :)
http://stream.fluendo.com/archive/6uadec/Lightning_Talks.ogg