All this new stuff seems really cool, except for the fact that all this technology depends on there being an OpenGL driver installed. AFAIK, the only ones that exist today are ones from ATi and NVidia which are closed off. Not that I’m a fundemental OS jihadist or anything (I’m currently posting this on an iBook running Panther and there’s not a chance in hell that I’d install Linux over it), but it kinda sucks for this great OS technology to depend on closed source drivers.
Surely, with all the big IT companies getting behind Linux, they could pressure existing video card makers to open up the drivers or they could come up with an open video card themselves…
This and gtk+ moving to using Cairo are huge leaps that we’ve been waiting for a long time. It’s dumb to have those millions of transistors sitting in the GPU doing nothing most of the time.
RE: Open source video card drivers?
Do you think Nvidia and/or ATI are going to go out of business soon? Oh well, what else is new in the negativity-filled world of linux advocacy.
The original poster claimed he wasn’t a fundamentalist, open source jihadist. So what does it matter if the drivers are closed-source or not? You should be lucky that Nvidia and ATI release linux drivers – period. But hey, I guess there can never be enough negativity in the FOSS world.
Are you trolling? I’m not a Linux advocate, in fact I said “I’m currently posting this on an iBook running Panther and there’s not a chance in hell that I’d install Linux over it”.
I do, however, recognise that Open Source is a great idea. I’m just not ready to sacrifice my laptop “just working” in order to use completely open software.
An open source graphics driver would be great because:
1) The binary drivers that ATi and NVidia can be very buggy on systems and they don’t run on all architectures that all open source operating systems run on.
2) An open source video driver would enable people to use Cairo and Glitz with only OSS.
Er, GL accelerated x server (XWin_GL.exe) has been available for ages. It’s doing exactly what in the article said: accelerated windows rendering, transparencies etc.
I wasn’t whining. I was talking about the likes of IBM, Sun and Novell either getting existing graphics card companies to open their drivers or for IBM, Sun and Novell to create an open graphics card.
It seems that there is already one being produced which is a good thing.
Also, a lot of people care about open source and a lot of these people would like to not have to depend on proprietary software as much.
Graphics card drivers are just one of the many missing links in the OSS chain.
I think you didn’t get me at all. Stop looking for a flamewar. You’re barking up the wrong tree.
Proprietary drivers cannot be bundled by default in Linux distributions. The user will have to go to a website and manually download drivers – what a hassle! And if there’s a bug, nobody can fix it but the manufacturerer, and you have no choice but to beg them to fix a bug (yes yes I know “most people cannot program”, but what about those who DO?). Nobody can recompile the driver against newer ABIs. The vast majority of Linux users DO care.
You’re flaming everyone down who cares about the license. The only one whining and being negative here is you. You’re one of those typical people who automatically label everybody who has a different opinion as “zealot”.
what’s the point of whining? ATI and Nvidia have no intentions of opening up their drivers and the vast majority of people could care less.
So you’ve polled a significant sampling of users to come to this conclusion? Mind telling us what the exact results of your poll were? If not, can we just assume you really have no idea how the vast majority of usrs feel?
Vectorized 3D linux desktop is overdue, I want clean AA letters, scale – independent window decorations, stunning 3D icons. Apple desktop screenshots make me insane. When RedHat integrate such features at least to FC ?
You’re the one whining dex. To people who follow the GNU philosophy, having open source drivers matters. You don’t, that’s fine. Why impose your view on others?
And we should feel lucky for ATI or Nvidia to even support our OS? That’s a wonderful attitude… Not one I’d like from a company I’m about to give my money (I know marketshare is the most important thing to companies, so yeah, it is nice of them. But it’s not ideal from the GNU point of view)
Anyway, looking mighty cool. I’m hoping something like this will be common soon, open source drivers or not. The possibilities as a game developer seem very cool.
Hah… I hope they would but the reality is very far from that. Only some old Matrox cards are relatively open in that sense. As to newer Parhelia-based Matrox cards, even the closed source Linux drivers suck, not to mention that there would be open source drivers, or open specs available to other developers. In fact, you even have to pay extra to get decent Linux drivers for Matrox Parhelia cards from XIG (so not from Matrox itself): http://forum.matrox.com/mga/viewtopic.php?t=13579
It seems that Matrox doesn’t much care for open source nor Linux – don’t believe their false marketing where they tell otherwise.
Most (older) ATI cards also have DRI support (IGP9100 for example). I can play tuxracer without binary drivers
About Apple and innovation? RMS says it all: Innovation is good when it respects people’s freedom, but bad when it is bait for people to give up their freedom…
you have to be joking. how about the pc? i would consider that an impressive innovation, totally ignoring everything else out of the company in the last few decades.
I believe that the poster of that comment was intending to point out that this “GL accelerated X server” seems to be using the same general ideas and techniques that Apple uses in OSX with Quartz. From the blog:
For example, window contents get rendered directly into textures [snip], and so you get the benefit of the 3d hardware doing the compositing when you move semi-opaque windows or regions around.
That’s pretty much what OSX does.
Want live, running thumbnailed versions of iconified windows? Done. Want your six virtual desktops to be the six faces of a cube that spins, with lighting? Done.
Those things are also done with OSX. Thumbnailed windows? Expose. Desktop as a side of a cube? Fast user switching.
“David has a lot of ideas like these, and you probably do too. Apple’s cute hacks, like Expose, are inspirational but now that space can be ours to explore. Xgl opens up a whole world of hardware acceleration, fancy animations, separating hardware resolution from software resolution, and more.”
Did you even took the time to read the article, i guess not.
Its not that the exactly copied Apples ideas etc. but its got David inspired
and took him further. I think its also nothing to be a shamed about Apple got some very nice technology and i hope lots of it comes to Gnome too.
Those things are also done with OSX. Thumbnailed windows? Expose. Desktop as a side of a cube? Fast user switching.
</quote>
Thumbnailed windows were done in enlightenment and other desktop pagers in linux long ago.
The desktop as a side of a cube was done in 3ddesktop long before Apple’s fast user switching.
Just because Apple is the first corporate behemoth to implement something, doesn’t mean they thought of it.
Now, Linux is just getting the technology to do all of this right – that is something that NextStep/OpenStep/Mac OS X had before us. I think the thing that must scare Apple fans and Windows lovers (do those exists?) is that Linux is catching up in terms of desktop innovation. Beagle is coming into maturity right along Spotlight. Muine solves a lot of interface quirks of iTunes. Xgl/Cairo/Composite/etc could very well beat avalon to market. Mono is doing a lot with .net that Microsoft hasn’t done. And so on and so on. This type of feature parity and innovation was not common on the OSS desktop space even a year ago. Things are starting to feel like the days when apache was starting to mature and become formidible. One can only hope.
The server is only being developed using the OpenGL implementation inside of the exisiting X server. It is meant to run on a standalone OpenGL stack and not need the current X server. The project for building this is called mesa-solo, http://mesa3d.sf.net.
All of the low level video initialization code currently is in the X 2D device drivers. Since mesa-solo doesn’t use X mesa-solo needs this support. The support is coming from the DRM and fbdev kernel drivers. There has been a lot of activity on lkml around video drivers lately trying to get this support pulled together.
mesa-solo is open source and based on the existing mesa. After we get mesa-solo and X on GL funtioning, the idea is that Nvidia and ATI will use it as a reference implementation and release standalone stacks of their own.
Major areas that need work:
1) video reset for secondary cards at boot and all cards on suspend/resume
2) add support for setting modes on secondary heads to fbdev
3) fix fbdev so that it can set modes without being root
4) Merge fbdev/DRM so that they have coordinated memory management
sorry brad, but neither of the examples you pointed out are done with compositing or GPU acceleration. that’s why they’re not live updating, and that’s why you can’t do really cool vector transformations like the genie effect in os x (when you minimize a window). also, since os x supports this as part of the quartz compositor, it’s *very* little code and very reusable code unlike the code needed to perform something similar in enlightenment.
so that the driver writers can focus on writing good code to interface with the computer?
seriously. then NVidea could release their interface to the card and the interface, being developed by them will be super rock solid as it is the only thing they have to worry about.
My understanding was that older ATi radeon cards (<=9250 IIRC) have full hardware-accelerated 3-D support under GNU/Linux with X.org’s radeon driver and the DRI project…
>Now, Linux is just getting the technology to do all of this right – that is something that NextStep/OpenStep/Mac OS X had before us. I think the thing that must scare Apple fans and Windows lovers (do those exists?) is that Linux is catching up in terms of desktop innovation.
why would it scare them? unless they are zealots of course. im a linux lover, but im not scared of windows or mac in any way, even though linux still hasnt caught up to windows when it comes to desktop technology, and is quite a ways from mac.
>Beagle is coming into maturity right along Spotlight.
beagle is closer to google desktop in windows, with more app integration. spotlight is more along the lines of winfs. also, the only way to get something resembling the metadata rich HFS is reiser4 + plugins, which everyone is hesitent to embrace in the interest of keeping linux platform independant.
>Muine solves a lot of interface quirks of iTunes.
iTunes is designed to work with a ton of songs. Muine is designed to work with a ton of albums. it all depends on the shape of your music collection i guess. personally, i perfer muine, but itunes has a borderline fanatical following with the top40 crowd.
>Xgl/Cairo/Composite/etc could very well beat avalon to market.
and quartz beat xgl/glitz/etc to market by a few years.not only that, if you remember, osx.0 really wasnt usable, .1 was alright for early adopters, .2 to .3 was roughly the time it got mature.
>Mono is doing a lot with .net that Microsoft hasn’t done.
the biggest accomplishment of mono is that it works on non microsoft platforms. microsoft has a huge amount banked on .net, while nat and company are playing catch up, microsoft is improving/optomizing .net. that is not to minimize the significance of mono by any means, but i doubt its really got ms scared.
>And so on and so on. This type of feature parity and innovation was not common on the OSS desktop space even a year ago. Things are starting to feel like the days when apache was starting to mature and become formidible. One can only hope.
agreed, the oss world tends to be coniniously moving forward at the speed of light. we are reaching the point of being “comparable” with the other big players, that is a herculean accomplishment considering who the other big players are and how long they have been around for.
Thanks for posting a comment here, it’s nice to see some input from somebody actually involved Would it be to much to ask if you would shed a little more light on the subject ? I have been struggling to grok the developments for the past year and it has been rather elusive to pull it all together…
Here is the picture I am getting
Xlibs is being re-written in Xr/Xc-aka Cairo.
Cairo is a pdf-like API which will have multiple backends:PDF, PS; GL via Glitz
Any application using cairo for drawing can utilze Glitz to do the actual rendering provided the user uses a card with a properly supported opengl driver. Failing this Cairo will use the existing Xlibs with Xfixes, Xdamage, Xcomposite extensions for rendering.
To the extent to which Glitz becomes an OpenGL re-write Xlibs itself- the entirety of X can run be inside OpenGl- ie. XGL. The way I understand it XGL is simply a second special Xserver which is used to render that which uses Xlibs as OpenGL. The applications one sees in the XGL demos were all compiled against standard Xlibs. The visual output of these programs is directed into a kind of OpenGL framebuffer-XGL. With XGL the applciations cannot take advantage, directly, of the OpenGL ‘view’ in which they are being presented-they do however, indirectly, profit from the genral speedup and compositing posibilities available in OpenGL.
XGL appears to be the quick and dirty way of getting a fullscreen OpenGL dfesktop…
Thanks for the update. It’s awesome that the community will finally get around to decoupling the low level mouse/keyboard/2d/3d driver support from xorg so others can play as well.
The biggest problem I see with the decoupling is that it may end up forcing different OS’s into adopting a more rigid kernel API for video and devices. But I guess that’s better than them not having any control over this whatsoever with the current state of xfree/xorg.
Sadly the only way to run something like this NOW would be to use an older ATI card (9250 and older) or matrox.
Open sourcing isn’t really necessary. What is necessary is for the hardware interfaces be published so an open source driver can be created by the community. Opening the interface isn’t too much to ask, is it?
I admitted in my post that the OSS community has not been able to implement these ideas cleanly without these experimental technologies. However, this is not the point.
Apple did not innovate with the window thumbnails and a spinning cube for switching display contexts. These ideas have been around for a long time and the OSS world implementing them correctly over the next few years does not mean that we are copying Apple – as many previous posts implied.
Apple copied these ideas from other sources – not the other way around. Nearly everything in the tech world today is at least partially derived from something else. It is absurd to say that what Apple is doing is abnormally innovative or revolutionary. Their implementation is the best out there – sure; but it isn’t exactly original.
OpenGL is bolted on to the side and cooperates with the X server only to share windowing.
libGL(mesa)
DRM
In the xlib model everything goes back to the server for rendering. Only OpenGL is direct rendered.
New model with X on GL:
QT/GTK
Cairo/glitz and X on GL
lib GL(mesa-solo)
DRM/fbdev
In the new model everything is direct rendered. Cairo/glitz bypasses the xserver and direct draws via mesa-solo/DRM. The X server also uses mesa-solo. This provides access to hardware compositing. Cairo/glitz and X on GL are direct drawn peers.
The whole point of X on GL is to get us to a single set of high performance video drivers. Basing this on OpenGL is a much better solution that slowly extending the 2D X drivers with compositing functions, etc. OpenGL is well documented, standardized and very high performance. There is no need to design another path for getting to the compositing hardware.
Once we get mesa-solo working it will be very easy for Nvidia/ATI to provide a swap out proprietary stack since everything is self contained under the OpenGL API. Swapping stacks will provide full support for the very latest hardware.
Everything still works remote. Right now OpenGL works remote, the same scheme will also make mesa-solo work remote. We’ll also fix remote OpenGL so that it is direct rendered instead of the current indirect path in X.
Of course there is a transistion path. That is why there are things like Cairo on xlib. If you want your app to transparently take advantage of X on GL start coding to Cairo today. Cairo is designed as a 2D drawing API that can print. OpenGL has limited text support and can’t print, that’s why Cairo is a layer on top of it.
Also, just because Cairo/X on GL is using OpenGL and OpenGL is used for 3D drawing, don’t jump to the conclusion that X is going to get some fancy 3D interface. OpenGL is just being used as a standard API for accessing the high performance hardware. Cairo/X on GL use this API to draw 2D images.
Your analogy doesn’t fit at all because as I said, these things have already been done in the OSS world – and probably other places as well. Check out 3ddesktop and the enlightment window manager/many old desktop pagers that used thumbnails of windows. Apple did NOT invent these concepts, they just implemented them well. There is a huge difference.
All this new stuff seems really cool, except for the fact that all this technology depends on there being an OpenGL driver installed. AFAIK, the only ones that exist today are ones from ATi and NVidia which are closed off.
No, you’re wrong. Mesa is a free OpenGL implementation and the DRI project provides open source hardware-accelerated OpenGL drivers which are based on Mesa. There is an open source DRI driver for all ATI chips prior to R300.
Ok, one question I have now is, can you download the code on cvs and build the xgl server and use it? somehow like you could download Keith P’s kdrive xserver?
All this new stuff seems really cool, except for the fact that all this technology depends on there being an OpenGL driver installed. AFAIK, the only ones that exist today are ones from ATi and NVidia which are closed off.
No, you’re wrong. Mesa is a free OpenGL implementation and the DRI project provides open source hardware-accelerated OpenGL drivers which are based on Mesa. There is an open source DRI driver for all ATI chips prior to R300.
More so, the free mesa OpenGL stack is in every X server. It’s what implements software indirect OpenGL rendering. Mesa also supports hardware acceleration. For example the 3D support for i810, i815, i915 is done with mesa. There is no proprietary support for these chips.
Ok, one question I have now is, can you download the code on cvs and build the xgl server and use it? somehow like you could download Keith P’s kdrive xserver?
Yes, it runs on OpenGL inside the existing X server as a development environment. It might even run on the Windows OpenGL implementation but I haven’t tried it there.
When mesa-solo is ready it lets you get rid of the extra X server.
This is really not appropriate, I know, but here goes nothing: does anyone know which Metacity theme he is using in that screenshot, and where I can get it?
There are also free drivers in the pipeline for R3xx and thus R4xx hardware from ATI, which means things like the relatively cheap Radeon 9600SE, or the hugely expensive 256MB X800Pro etc.
see r300.sf.net if you can program and want to help
Right now they have Quake 3 playable, but a lot more work is needed, espeically for modern features like shaders. A few key people volunteering instead of whining about proprietary drivers could ensure this is delivered for everyone’s benefit sooner rather than later.
This is all nice when running local X sessions, but how will remote X sessions be handeled? Does this cause problems using a remote graphics card to do the rendering?
Even more importantly: what if there is no hardware available to do the rendering. Say a server doesn’t have a graphics card since all the sessions are remote, and somebody requests an X session remotely using VNC? The X session is local, but the terminal output is piped into the XVNC server. No hardware is available locally to render this out for the XVNC server. Crap. Now what? Can it fall back to CPU based 2D rendering?
Remote sessions will work just like they do right now. OpenGL already works remote in the current X server.
Not having hardware is an orthogonal issue. In that case there is software mesa. Software mesa is already shipping in the current X server and provides software generated OpenGL when there is no acceleration hardware.
I don’t use VNC. How does it integrate with OpenGL drawing on the current X server? Whatever it does now is what will happen on the new server.
Also, the X on GL server still supports remote clients using the xlib protocol. It just draws the output using OpenGL. It supports local xlib clients too.
There is still debate over whether it would be better for a remote Cairo client to use glitz and remote OpenGL or the xlib protocol. No one has really tested this yet.
X on GL is not really a new X server. It’s the old one with all of it’s 2D drivers pulled out and a new one based on OpenGL added instead.
Well I gotta say thanks a lot for taking the time to answer our questions, all this stuff seems really exciting. I’ll go ahead a try it once I get home
I don’t use VNC. How does it integrate with OpenGL drawing on the current X server? Whatever it does now is what will happen on the new server.
Right now, when the Xvnc server gets a request for a session, it creates a new local X session. Instead of outputing to a terminal though, it’s output is send to VNC, which compresses the hell out of it so that it can be sent over low bandwith internet connections. (usually tunneled through SSH)
Still, even now not everything gets rendered correctly. Text and antialiasing don’t work the way they should. Not sure if this is a problem with x.org or the VNC server.
Anyone have an automated fetch/build script handy? I’d like to try this out, just don’t feel like manually checking out the source and compiling 20 packages by hand.
Thanks for taking the time to answer questions. Many of us are interested in the X Windows renaissance of late, but don’t have (yet) the domain knowledge to understand the code or even the newsgroup conversations.
It sounds like great progress is being made in tying together the individual development efforts.
What I would love to see is this; companies like Nvidia and Ati come out and just say, “we can’t justify a business case for supporting alternative operating systems, but if the community is willing to fund the development and maintanence, we’re willing to provide the man power”.
If that was the stance, then it would simply be a matter of alternative operating systems coming together, forming a fund via a paypal account, and people donating money where they can. I am sure that if they pooled together a few thousand dollars each year, it would pay for the cost of development.
I understand that they can’t have 100% opensource drivers as it might leak some of their sensitive trade secrets, but with that said, if they’re willing to meet the alternative operating system community half way, it would be a great step forward.
What I would love to see is this; companies like Nvidia and Ati come out and just say, “we can’t justify a business case for supporting alternative operating systems, but if the community is willing to fund the development and maintanence, we’re willing to provide the man power”.
If that was the stance, then it would simply be a matter of alternative operating systems coming together, forming a fund via a paypal account, and people donating money where they can. I am sure that if they pooled together a few thousand dollars each year, it would pay for the cost of development.
I understand that they can’t have 100% opensource drivers as it might leak some of their sensitive trade secrets, but with that said, if they’re willing to meet the alternative operating system community half way, it would be a great step forward.
I cannot wait, now that I bought an nvidia card…
All this new stuff seems really cool, except for the fact that all this technology depends on there being an OpenGL driver installed. AFAIK, the only ones that exist today are ones from ATi and NVidia which are closed off. Not that I’m a fundemental OS jihadist or anything (I’m currently posting this on an iBook running Panther and there’s not a chance in hell that I’d install Linux over it), but it kinda sucks for this great OS technology to depend on closed source drivers.
Surely, with all the big IT companies getting behind Linux, they could pressure existing video card makers to open up the drivers or they could come up with an open video card themselves…
There is another way – support Open Graphics Project. Look at http://www.kerneltrap.org/node/4622
This and gtk+ moving to using Cairo are huge leaps that we’ve been waiting for a long time. It’s dumb to have those millions of transistors sitting in the GPU doing nothing most of the time.
RE: Open source video card drivers?
Do you think Nvidia and/or ATI are going to go out of business soon? Oh well, what else is new in the negativity-filled world of linux advocacy.
>Do you think Nvidia and/or ATI are going to go out of business soon?
Please people, don’t be silly.
[i]Please people, don’t be silly
The original poster claimed he wasn’t a fundamentalist, open source jihadist. So what does it matter if the drivers are closed-source or not? You should be lucky that Nvidia and ATI release linux drivers – period. But hey, I guess there can never be enough negativity in the FOSS world.
Are you trolling? I’m not a Linux advocate, in fact I said “I’m currently posting this on an iBook running Panther and there’s not a chance in hell that I’d install Linux over it”.
I do, however, recognise that Open Source is a great idea. I’m just not ready to sacrifice my laptop “just working” in order to use completely open software.
An open source graphics driver would be great because:
1) The binary drivers that ATi and NVidia can be very buggy on systems and they don’t run on all architectures that all open source operating systems run on.
2) An open source video driver would enable people to use Cairo and Glitz with only OSS.
I wasn’t being negative towards ATi and NVidia, I was simply saying that it would be better to have a fully open video card driver.
When I did run a PC with Linux on it, I was grateful that I could use NVidia’s driver on it.
what’s the point of whining? ATI and Nvidia have no intentions of opening up their drivers and the vast majority of people could care less.
Er, GL accelerated x server (XWin_GL.exe) has been available for ages. It’s doing exactly what in the article said: accelerated windows rendering, transparencies etc.
…talk about cool stuff that can be done with this instead of people whining that Nvidia and ATI have closed source drivers.
Any takers?
Wanna run OpenGL on GNU/Linux?
get a voodoo card
love
> what’s the point of whining? ATI and Nvidia have no intentions of opening up their drivers and the vast majority of people could care less.
the vast majority of people could care less about linux.
ATI drivers : waiting 8 months for a driver that doesnt even support xorg8
NVIDIA drivers : a linux instalation that can be freezed anytime by starting fbtv or fbi … etc
I wasn’t whining. I was talking about the likes of IBM, Sun and Novell either getting existing graphics card companies to open their drivers or for IBM, Sun and Novell to create an open graphics card.
It seems that there is already one being produced which is a good thing.
Also, a lot of people care about open source and a lot of these people would like to not have to depend on proprietary software as much.
Graphics card drivers are just one of the many missing links in the OSS chain.
I think you didn’t get me at all. Stop looking for a flamewar. You’re barking up the wrong tree.
Proprietary drivers cannot be bundled by default in Linux distributions. The user will have to go to a website and manually download drivers – what a hassle! And if there’s a bug, nobody can fix it but the manufacturerer, and you have no choice but to beg them to fix a bug (yes yes I know “most people cannot program”, but what about those who DO?). Nobody can recompile the driver against newer ABIs. The vast majority of Linux users DO care.
You’re flaming everyone down who cares about the license. The only one whining and being negative here is you. You’re one of those typical people who automatically label everybody who has a different opinion as “zealot”.
Nvidia and ATI won’t open up their drivers.
Doesn’t Matrox release all their specs?
what’s the point of whining? ATI and Nvidia have no intentions of opening up their drivers and the vast majority of people could care less.
So you’ve polled a significant sampling of users to come to this conclusion? Mind telling us what the exact results of your poll were? If not, can we just assume you really have no idea how the vast majority of usrs feel?
Adam
The article is about an experimental GL accelerated X server. Could you move your driver license discussions to the forums or something?
Whinge whinge whinge.
Thats all these comments seem to be these days….
Open source this, open source that, closed this, closed that.
*yawns*
Vectorized 3D linux desktop is overdue, I want clean AA letters, scale – independent window decorations, stunning 3D icons. Apple desktop screenshots make me insane. When RedHat integrate such features at least to FC ?
You’re the one whining dex. To people who follow the GNU philosophy, having open source drivers matters. You don’t, that’s fine. Why impose your view on others?
And we should feel lucky for ATI or Nvidia to even support our OS? That’s a wonderful attitude… Not one I’d like from a company I’m about to give my money (I know marketshare is the most important thing to companies, so yeah, it is nice of them. But it’s not ideal from the GNU point of view)
Anyway, looking mighty cool. I’m hoping something like this will be common soon, open source drivers or not. The possibilities as a game developer seem very cool.
Doesn’t Matrox release all their specs?
Hah… I hope they would but the reality is very far from that. Only some old Matrox cards are relatively open in that sense. As to newer Parhelia-based Matrox cards, even the closed source Linux drivers suck, not to mention that there would be open source drivers, or open specs available to other developers. In fact, you even have to pay extra to get decent Linux drivers for Matrox Parhelia cards from XIG (so not from Matrox itself): http://forum.matrox.com/mga/viewtopic.php?t=13579
It seems that Matrox doesn’t much care for open source nor Linux – don’t believe their false marketing where they tell otherwise.
Most (older) ATI cards also have DRI support (IGP9100 for example). I can play tuxracer without binary drivers
About Apple and innovation? RMS says it all: Innovation is good when it respects people’s freedom, but bad when it is bait for people to give up their freedom…
What it means.. I will not be able to use Xgl X11 until nvidia open up the code ? Considering I’m using a nvidia card
As usually, Apple innovates, the other follow …
What did Apple innovate?
you have to be joking. how about the pc? i would consider that an impressive innovation, totally ignoring everything else out of the company in the last few decades.
As usually, Apple innovates, the other follow …
What did Apple innovate?
I believe that the poster of that comment was intending to point out that this “GL accelerated X server” seems to be using the same general ideas and techniques that Apple uses in OSX with Quartz. From the blog:
For example, window contents get rendered directly into textures [snip], and so you get the benefit of the 3d hardware doing the compositing when you move semi-opaque windows or regions around.
That’s pretty much what OSX does.
Want live, running thumbnailed versions of iconified windows? Done. Want your six virtual desktops to be the six faces of a cube that spins, with lighting? Done.
Those things are also done with OSX. Thumbnailed windows? Expose. Desktop as a side of a cube? Fast user switching.
From the article:
“David has a lot of ideas like these, and you probably do too. Apple’s cute hacks, like Expose, are inspirational but now that space can be ours to explore. Xgl opens up a whole world of hardware acceleration, fancy animations, separating hardware resolution from software resolution, and more.”
Did you even took the time to read the article, i guess not.
Its not that the exactly copied Apples ideas etc. but its got David inspired
and took him further. I think its also nothing to be a shamed about Apple got some very nice technology and i hope lots of it comes to Gnome too.
Maybe we should get this back into topic, the guy’s posting the link to the sourcecode of the project
http://cvs.freedesktop.org/xserver/xserver/hw/xgl/
has anyone tried to build it yet?, I’d like to hear some stories about how easy/hard it is to get it working.
I’ll go try it out myself once I get home tonight.
<quote>
Those things are also done with OSX. Thumbnailed windows? Expose. Desktop as a side of a cube? Fast user switching.
</quote>
Thumbnailed windows were done in enlightenment and other desktop pagers in linux long ago.
The desktop as a side of a cube was done in 3ddesktop long before Apple’s fast user switching.
Just because Apple is the first corporate behemoth to implement something, doesn’t mean they thought of it.
Now, Linux is just getting the technology to do all of this right – that is something that NextStep/OpenStep/Mac OS X had before us. I think the thing that must scare Apple fans and Windows lovers (do those exists?) is that Linux is catching up in terms of desktop innovation. Beagle is coming into maturity right along Spotlight. Muine solves a lot of interface quirks of iTunes. Xgl/Cairo/Composite/etc could very well beat avalon to market. Mono is doing a lot with .net that Microsoft hasn’t done. And so on and so on. This type of feature parity and innovation was not common on the OSS desktop space even a year ago. Things are starting to feel like the days when apache was starting to mature and become formidible. One can only hope.
The server is only being developed using the OpenGL implementation inside of the exisiting X server. It is meant to run on a standalone OpenGL stack and not need the current X server. The project for building this is called mesa-solo, http://mesa3d.sf.net.
All of the low level video initialization code currently is in the X 2D device drivers. Since mesa-solo doesn’t use X mesa-solo needs this support. The support is coming from the DRM and fbdev kernel drivers. There has been a lot of activity on lkml around video drivers lately trying to get this support pulled together.
mesa-solo is open source and based on the existing mesa. After we get mesa-solo and X on GL funtioning, the idea is that Nvidia and ATI will use it as a reference implementation and release standalone stacks of their own.
Major areas that need work:
1) video reset for secondary cards at boot and all cards on suspend/resume
2) add support for setting modes on secondary heads to fbdev
3) fix fbdev so that it can set modes without being root
4) Merge fbdev/DRM so that they have coordinated memory management
5) Hardware cursor support in fbdev
Jon Smirl
[email protected]
I’m confused, could someone please explain some things to me:
Doesn’t Cairo already allows you to do rendering using OpenGL? If so, isn’t this new X server “redundant”?
Thanks,
Victor.
>Doesn’t Cairo already allows you to do rendering using OpenGL? If so, isn’t this new X server
It does. But so far no toolkit leverages Cairo. It’s in the Gtk CVS(but corrently doesn’t do anything useful).
Other toolkits may never use cairo..
Yes, Cairo can use OpenGL for rendering. But the X server does not use Cairo, therefore the X server does not use OpenGL — until now.
sorry brad, but neither of the examples you pointed out are done with compositing or GPU acceleration. that’s why they’re not live updating, and that’s why you can’t do really cool vector transformations like the genie effect in os x (when you minimize a window). also, since os x supports this as part of the quartz compositor, it’s *very* little code and very reusable code unlike the code needed to perform something similar in enlightenment.
so that the driver writers can focus on writing good code to interface with the computer?
seriously. then NVidea could release their interface to the card and the interface, being developed by them will be super rock solid as it is the only thing they have to worry about.
is ti to slow to have that kind of setup?
My understanding was that older ATi radeon cards (<=9250 IIRC) have full hardware-accelerated 3-D support under GNU/Linux with X.org’s radeon driver and the DRI project…
Where do I stand with my Xlib adrian nye oreilly series??
Is all the R6 API still going to be good?
Where can I find a list of the new extended API?
WIll there be an R7?
I guess X Resource Journal doesn’t exist anymore, is there a new journal that has the latest X Mods I can subscribe to?
>Now, Linux is just getting the technology to do all of this right – that is something that NextStep/OpenStep/Mac OS X had before us. I think the thing that must scare Apple fans and Windows lovers (do those exists?) is that Linux is catching up in terms of desktop innovation.
why would it scare them? unless they are zealots of course. im a linux lover, but im not scared of windows or mac in any way, even though linux still hasnt caught up to windows when it comes to desktop technology, and is quite a ways from mac.
>Beagle is coming into maturity right along Spotlight.
beagle is closer to google desktop in windows, with more app integration. spotlight is more along the lines of winfs. also, the only way to get something resembling the metadata rich HFS is reiser4 + plugins, which everyone is hesitent to embrace in the interest of keeping linux platform independant.
>Muine solves a lot of interface quirks of iTunes.
iTunes is designed to work with a ton of songs. Muine is designed to work with a ton of albums. it all depends on the shape of your music collection i guess. personally, i perfer muine, but itunes has a borderline fanatical following with the top40 crowd.
>Xgl/Cairo/Composite/etc could very well beat avalon to market.
and quartz beat xgl/glitz/etc to market by a few years.not only that, if you remember, osx.0 really wasnt usable, .1 was alright for early adopters, .2 to .3 was roughly the time it got mature.
>Mono is doing a lot with .net that Microsoft hasn’t done.
the biggest accomplishment of mono is that it works on non microsoft platforms. microsoft has a huge amount banked on .net, while nat and company are playing catch up, microsoft is improving/optomizing .net. that is not to minimize the significance of mono by any means, but i doubt its really got ms scared.
>And so on and so on. This type of feature parity and innovation was not common on the OSS desktop space even a year ago. Things are starting to feel like the days when apache was starting to mature and become formidible. One can only hope.
agreed, the oss world tends to be coniniously moving forward at the speed of light. we are reaching the point of being “comparable” with the other big players, that is a herculean accomplishment considering who the other big players are and how long they have been around for.
Thanks for posting a comment here, it’s nice to see some input from somebody actually involved
Would it be to much to ask if you would shed a little more light on the subject ? I have been struggling to grok the developments for the past year and it has been rather elusive to pull it all together…
Here is the picture I am getting
Xlibs is being re-written in Xr/Xc-aka Cairo.
Cairo is a pdf-like API which will have multiple backends:PDF, PS; GL via Glitz
Any application using cairo for drawing can utilze Glitz to do the actual rendering provided the user uses a card with a properly supported opengl driver. Failing this Cairo will use the existing Xlibs with Xfixes, Xdamage, Xcomposite extensions for rendering.
To the extent to which Glitz becomes an OpenGL re-write Xlibs itself- the entirety of X can run be inside OpenGl- ie. XGL. The way I understand it XGL is simply a second special Xserver which is used to render that which uses Xlibs as OpenGL. The applications one sees in the XGL demos were all compiled against standard Xlibs. The visual output of these programs is directed into a kind of OpenGL framebuffer-XGL. With XGL the applciations cannot take advantage, directly, of the OpenGL ‘view’ in which they are being presented-they do however, indirectly, profit from the genral speedup and compositing posibilities available in OpenGL.
XGL appears to be the quick and dirty way of getting a fullscreen OpenGL dfesktop…
Now how far am I off the mark?
You answers would be greatly appreicated…
Thanks for the update. It’s awesome that the community will finally get around to decoupling the low level mouse/keyboard/2d/3d driver support from xorg so others can play as well.
The biggest problem I see with the decoupling is that it may end up forcing different OS’s into adopting a more rigid kernel API for video and devices. But I guess that’s better than them not having any control over this whatsoever with the current state of xfree/xorg.
Sadly the only way to run something like this NOW would be to use an older ATI card (9250 and older) or matrox.
Open sourcing isn’t really necessary. What is necessary is for the hardware interfaces be published so an open source driver can be created by the community. Opening the interface isn’t too much to ask, is it?
I admitted in my post that the OSS community has not been able to implement these ideas cleanly without these experimental technologies. However, this is not the point.
Apple did not innovate with the window thumbnails and a spinning cube for switching display contexts. These ideas have been around for a long time and the OSS world implementing them correctly over the next few years does not mean that we are copying Apple – as many previous posts implied.
Apple copied these ideas from other sources – not the other way around. Nearly everything in the tech world today is at least partially derived from something else. It is absurd to say that what Apple is doing is abnormally innovative or revolutionary. Their implementation is the best out there – sure; but it isn’t exactly original.
Well, SiliconGraphics did it some 20 years ago.
pica
Right now we have this:
QT/GTK
xlib
2D X drivers
OpenGL is bolted on to the side and cooperates with the X server only to share windowing.
libGL(mesa)
DRM
In the xlib model everything goes back to the server for rendering. Only OpenGL is direct rendered.
New model with X on GL:
QT/GTK
Cairo/glitz and X on GL
lib GL(mesa-solo)
DRM/fbdev
In the new model everything is direct rendered. Cairo/glitz bypasses the xserver and direct draws via mesa-solo/DRM. The X server also uses mesa-solo. This provides access to hardware compositing. Cairo/glitz and X on GL are direct drawn peers.
The whole point of X on GL is to get us to a single set of high performance video drivers. Basing this on OpenGL is a much better solution that slowly extending the 2D X drivers with compositing functions, etc. OpenGL is well documented, standardized and very high performance. There is no need to design another path for getting to the compositing hardware.
Once we get mesa-solo working it will be very easy for Nvidia/ATI to provide a swap out proprietary stack since everything is self contained under the OpenGL API. Swapping stacks will provide full support for the very latest hardware.
Everything still works remote. Right now OpenGL works remote, the same scheme will also make mesa-solo work remote. We’ll also fix remote OpenGL so that it is direct rendered instead of the current indirect path in X.
Of course there is a transistion path. That is why there are things like Cairo on xlib. If you want your app to transparently take advantage of X on GL start coding to Cairo today. Cairo is designed as a 2D drawing API that can print. OpenGL has limited text support and can’t print, that’s why Cairo is a layer on top of it.
Also, just because Cairo/X on GL is using OpenGL and OpenGL is used for 3D drawing, don’t jump to the conclusion that X is going to get some fancy 3D interface. OpenGL is just being used as a standard API for accessing the high performance hardware. Cairo/X on GL use this API to draw 2D images.
people had been talking about flying through the air a *long* time before the wright brothers came up with the plane.
Your analogy doesn’t fit at all because as I said, these things have already been done in the OSS world – and probably other places as well. Check out 3ddesktop and the enlightment window manager/many old desktop pagers that used thumbnails of windows. Apple did NOT invent these concepts, they just implemented them well. There is a huge difference.
All this new stuff seems really cool, except for the fact that all this technology depends on there being an OpenGL driver installed. AFAIK, the only ones that exist today are ones from ATi and NVidia which are closed off.
No, you’re wrong. Mesa is a free OpenGL implementation and the DRI project provides open source hardware-accelerated OpenGL drivers which are based on Mesa. There is an open source DRI driver for all ATI chips prior to R300.
If you want your app to transparently take advantage of X on GL start coding to Cairo today. Cairo is designed as a 2D drawing API that can print.
What is the difference between Cairo and the Xprint server?
Ok, one question I have now is, can you download the code on cvs and build the xgl server and use it? somehow like you could download Keith P’s kdrive xserver?
All this new stuff seems really cool, except for the fact that all this technology depends on there being an OpenGL driver installed. AFAIK, the only ones that exist today are ones from ATi and NVidia which are closed off.
No, you’re wrong. Mesa is a free OpenGL implementation and the DRI project provides open source hardware-accelerated OpenGL drivers which are based on Mesa. There is an open source DRI driver for all ATI chips prior to R300.
More so, the free mesa OpenGL stack is in every X server. It’s what implements software indirect OpenGL rendering. Mesa also supports hardware acceleration. For example the 3D support for i810, i815, i915 is done with mesa. There is no proprietary support for these chips.
Ok, one question I have now is, can you download the code on cvs and build the xgl server and use it? somehow like you could download Keith P’s kdrive xserver?
Yes, it runs on OpenGL inside the existing X server as a development environment. It might even run on the Windows OpenGL implementation but I haven’t tried it there.
When mesa-solo is ready it lets you get rid of the extra X server.
This is really not appropriate, I know, but here goes nothing: does anyone know which Metacity theme he is using in that screenshot, and where I can get it?
There are also free drivers in the pipeline for R3xx and thus R4xx hardware from ATI, which means things like the relatively cheap Radeon 9600SE, or the hugely expensive 256MB X800Pro etc.
see r300.sf.net if you can program and want to help
Right now they have Quake 3 playable, but a lot more work is needed, espeically for modern features like shaders. A few key people volunteering instead of whining about proprietary drivers could ensure this is delivered for everyone’s benefit sooner rather than later.
This is all nice when running local X sessions, but how will remote X sessions be handeled? Does this cause problems using a remote graphics card to do the rendering?
Even more importantly: what if there is no hardware available to do the rendering. Say a server doesn’t have a graphics card since all the sessions are remote, and somebody requests an X session remotely using VNC? The X session is local, but the terminal output is piped into the XVNC server. No hardware is available locally to render this out for the XVNC server. Crap. Now what? Can it fall back to CPU based 2D rendering?
Remote sessions will work just like they do right now. OpenGL already works remote in the current X server.
Not having hardware is an orthogonal issue. In that case there is software mesa. Software mesa is already shipping in the current X server and provides software generated OpenGL when there is no acceleration hardware.
I don’t use VNC. How does it integrate with OpenGL drawing on the current X server? Whatever it does now is what will happen on the new server.
Also, the X on GL server still supports remote clients using the xlib protocol. It just draws the output using OpenGL. It supports local xlib clients too.
There is still debate over whether it would be better for a remote Cairo client to use glitz and remote OpenGL or the xlib protocol. No one has really tested this yet.
X on GL is not really a new X server. It’s the old one with all of it’s 2D drivers pulled out and a new one based on OpenGL added instead.
Jon Smirl
[email protected]
Well I gotta say thanks a lot for taking the time to answer our questions, all this stuff seems really exciting. I’ll go ahead a try it once I get home
Again,
Thanks
I don’t use VNC. How does it integrate with OpenGL drawing on the current X server? Whatever it does now is what will happen on the new server.
Right now, when the Xvnc server gets a request for a session, it creates a new local X session. Instead of outputing to a terminal though, it’s output is send to VNC, which compresses the hell out of it so that it can be sent over low bandwith internet connections. (usually tunneled through SSH)
Still, even now not everything gets rendered correctly. Text and antialiasing don’t work the way they should. Not sure if this is a problem with x.org or the VNC server.
I use the TightVNC implementation: http://www.tightvnc.org
I use Gentoo so this guide on how to set it up may be a bit distro specific, but it’s a good starting point: http://gentoo-wiki.com/HOWTO_Xvnc_terminal_server
How will this affect the performance of remote connections?
Anyone have an automated fetch/build script handy? I’d like to try this out, just don’t feel like manually checking out the source and compiling 20 packages by hand.
Jon,
Thanks for taking the time to answer questions. Many of us are interested in the X Windows renaissance of late, but don’t have (yet) the domain knowledge to understand the code or even the newsgroup conversations.
It sounds like great progress is being made in tying together the individual development efforts.
-captrb
What I would love to see is this; companies like Nvidia and Ati come out and just say, “we can’t justify a business case for supporting alternative operating systems, but if the community is willing to fund the development and maintanence, we’re willing to provide the man power”.
If that was the stance, then it would simply be a matter of alternative operating systems coming together, forming a fund via a paypal account, and people donating money where they can. I am sure that if they pooled together a few thousand dollars each year, it would pay for the cost of development.
I understand that they can’t have 100% opensource drivers as it might leak some of their sensitive trade secrets, but with that said, if they’re willing to meet the alternative operating system community half way, it would be a great step forward.
What I would love to see is this; companies like Nvidia and Ati come out and just say, “we can’t justify a business case for supporting alternative operating systems, but if the community is willing to fund the development and maintanence, we’re willing to provide the man power”.
If that was the stance, then it would simply be a matter of alternative operating systems coming together, forming a fund via a paypal account, and people donating money where they can. I am sure that if they pooled together a few thousand dollars each year, it would pay for the cost of development.
I understand that they can’t have 100% opensource drivers as it might leak some of their sensitive trade secrets, but with that said, if they’re willing to meet the alternative operating system community half way, it would be a great step forward.
Sorry i don’t know the Metacity theme. Only the background
http://www.gnome-look.org/content/files/19248-Graphisenion-ver2-2-1…
does anyone know where I can get that background found on that screenshot:
http://nat.org/2005/february/xgl-shot.png ??
Thanks.
Its Waimea. To be expected when its the Xgl developer’s baby.