Slashdot Mirror


XGL Development Opens Up

An anonymous reader writes "David Reveman has made the latest XGL source code available for download. This comes a few weeks after development of the project was criticized for being done 'behind closed doors'. There have been huge changes to XGL, the most significant being restructuring of the code, allowing XGL's GLX support to function on other drivers than the proprietary Nvidia one. Xcompmgr can currently be run under XGL with full acceleration provided that the proprietary ATI or Nvidia drivers are used. An OpenGL based compositing manager, 'Compiz' is currently in the works and a release is expected in February. David intends to get the code into freedesktop CVS as soon as possible, after which the code should eventually merge with Xorg."

29 of 174 comments (clear)

  1. Nice to see more openness. by jZnat · · Score: 4, Insightful

    No free (gratis) software should be proprietary; that's just a general rule! If you're giving your software away free of charge, people generally would like to contribute back whether it be in donations, patches, QA, etc. With a closed-source model, you're blocking off the useful traffic of free bugfixes! If your software is useful in the corporate world, it's also likely that some companies will contribute back if they tinker around with it enough.

    --
    'Yes, firefox is indeed greater than women. Can women block pops up for you? No. Can Firefox show you naked women? Yes.'
    1. Re:Nice to see more openness. by heatdeath · · Score: 4, Insightful

      Well, there are certain circumstances where it makes sense - if you're not sure where you want the project to go, but you want to give people the benefit of your code for right now. If you opensource it, you're pretty much condemning any potential you had for making money off of the code. Of course, there are those on this forum that would claim that that's wrong...but it's still a valid reason to keep your source proprietary.

      --
      I'm sorry. The number you have reached is imaginary. Please rotate your phone 90 degrees and try again.
    2. Re:Nice to see more openness. by Kjella · · Score: 3, Insightful

      How do you explain how TrollTech makes money with a GPL'd program (Qt and its official frameworks)? Or how CodeWeavers makes money off of CrossOver Office when WINE is Free in both ways? Or how RedHat makes money off of providing a Linux distro + support when there is Fedora Core, their fully Free distro of RedHat?

      1. Commercial versions for closed source, "free sample"
      2. Need for constant upgrades to make new software work
      3. Need for constant upgrades to make new software work
      4. Repackaging the works of others, "free sample" of RHEL

      There are countless applications where you'd barely be able to scrape together a living if it were OSS. Seriously, how many of the OSS applications you have on your computer have you bought support for? I can tell you mine is a big fat zero. Particularly if you're competing against a good user community for providing support. For a more typical project you may get the odd paypal donation but I sure wouldn't want to rely on that for a living...

      --
      Live today, because you never know what tomorrow brings
    3. Re:Nice to see more openness. by Bert64 · · Score: 3, Insightful

      Most sales come from corporate users, and corporate users are also more likely to buy support.. Joe enduser is not likely to buy support, and is also likely to copy any software his friends have..
      Selling software to end consumers is a lot of hassle, and far less profitable than selling to corporate users, so these companies don't sell to end users, they give it to them for free.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    4. Re:Nice to see more openness. by Jah-Wren+Ryel · · Score: 3, Informative

      And in a free market all software would end up being sold at it's true value, which is also pretty minimal.

      You are correct, up until you used a comma.

      The value of software is to the user. If there is a business need for software, it will be created - and that creation will be paid for by the business that needs it and they will be willing to pay up to as much as it is worth to them.

      For the last 30 or so years, the majority money spent of software has been to develop it on contract. Shrink-wrap software may die off, replaced by freely downloadable software - but shrink-wrap is only a small part of the total market. Custom development is always where its been at - just look at IBM Global Services, that's pretty much all they do.

      --
      When information is power, privacy is freedom.
  2. huh? by bcrowell · · Score: 4, Interesting

    Can anyone translate this into English? What is XGL and why should we care?

    1. Re:huh? by MichaelSmith · · Score: 3, Informative
      What is XGL and why should we care?

      I googled around for it. It seems to be an openGL based X server. I know of a large HMI development project running at the moment which may wind up deploying on windows (as opposed to Linux) due to the faster OpenGL implementation under windows.

      Something like this could tip the balance.

    2. Re:huh? by coolGuyZak · · Score: 5, Informative
      XGL is a hardware accelerated x-server, which uses the 3D pipeline to render graphics. We should care because it will allow future developers to create whole manner of different effects (vector graphic scaling & rendering, interesting window effects, pixel shaded effects (bump mapping buttons), etc).

      If you are in the windows or mac worlds, there's not much of a reason to get excited... OSX already does this, and Vista will as well. But for those of us in *nix world who want eye-candy, it's quite A Good Thing (tm).

    3. Re:huh? by ArbitraryConstant · · Score: 4, Informative

      I should add that OpenGL support is already available, but XGL allows the X server to transparently use it in a way that's compatible with existing applications.

      --
      I rarely criticize things I don't care about.
    4. Re:huh? by vandan · · Score: 3, Informative

      No.

      If you want a faster OpenGL implementation, then you want to optimise Mesa and the individual video card drivers.

      XGL is an X Server that runs on OpenGL. It won't make your OpenGL drivers faster - it's simply an OpenGL client ... ie an application that runs on an OpenGL system.

  3. Unfree by Brandybuck · · Score: 3, Insightful

    Xcompmgr can currently be run under XGL with full acceleration provided that the proprietary ATI or Nvidia drivers are used.

    What good is Open Source if it's inextricably tied to proprietary software? Where do I send my money to get someone to write a Free Software video driver?

    --
    Don't blame me, I didn't vote for either of them!
    1. Re:Unfree by Ruie · · Score: 4, Insightful
      Two things you can do (in no particular order):
      • Ask (politely) ATI to provide 3d specs
      • Work on DRI project (r300 driver for example)
    2. Re:Unfree by Anonymous Coward · · Score: 5, Insightful

      > Where do I send my money to get someone to write a Free Software video driver?

      I don't know, and I wish there was one too, but:

      I think people generally misunderstand the sheer amount of work put into those proprietary graphics drivers. It's not something where you can throw a few bucks at some garage coders and turn out the same thing. These are done by large teams of highly payed developers (I think 100 developers is the right order of magnitude, plus or minus), working for years. It takes *serious* amounts of money to fund that sort of development staff, and it's not something you and me and a few other likeminded folks are going to be able to fund.

      Can you get *some* working graphics driver for a lot less money? Of course. But you can't get what the proprietary drivers do, in terms of performance and functionality, on the cheap.

      Just tryin' to inject some reality into the picture here :D

    3. Re:Unfree by poofyhairguy82 · · Score: 4, Informative
      Where do I send my money to get someone to write a Free Software video driver?

      You don't. Nvidia and ATI could not care about you money- the only reason they made drivers for Linux in the first place was to sell high end cards to render 3D scenes.

      If you really want to support open drivers, buy an ATI 9250 and help test EXA and Xgl on there. That is the best card we have with open drivers, and it seems like it will be on top for a LONG time.

    4. Re:Unfree by vandan · · Score: 5, Informative

      I disagree.

      The opensource R100, R200 & R300 drivers were written by the DRI developers. ATI provided some incomplete and contradictory documentation for the R100 & R200 to some select developers who had to sign an NDA. All the coding has been done by DRI developers. The R300 has been completely reverse-engineered.

      Now. Check out all 3 drivers. They not only work, but they work incredibly well. In fact they are faster and more stable than ATI's drivers, except for in some key areas ... usually areas where more documentation is required.

      The simple fact is that the very thing you're saying is impossible - opensource developement of top-quality drivers - has already happened. Not only that, despite your suggestion that they're not up to it, R300 developers continue to reverse-engineer and code for the current and upcoming cards from ATI. Pretty neat, eh? Check out the list of apps the R300 can run - you'll be surprised.

    5. Re:Unfree by BillyBlaze · · Score: 3, Funny

      I have an idea - nVidia could subsidize the tremendous task of writing open source video drivers with some sort of side business, like, oh I don't know, manufacturing video hardware.

    6. Re:Unfree by dolphinling · · Score: 3, Informative

      And even better: Buy a card from the Open Graphics Project when it's available (first half of this year, if all goes well).

      It's certainly what I'm doing (just sent back an Nvidia 6600 something-or-other I got for ACGPD).

      --
      There are 11 types of people in the world: those who can count in binary, and those who can't.
    7. Re:Unfree by poofyhairguy82 · · Score: 3, Informative
      Now. Check out all 3 drivers. They not only work, but they work incredibly well. In fact they are faster and more stable than ATI's drivers, except for in some key areas ... usually areas where more documentation is required.

      Really? Everything I read tells me that the crappy closed ATI drivers are still faster when it comes to 3D than the open source drivers.

      I mean...its cool that at least one set of cards with decent 3D hardware has open driver, but those drivers are not for gamers to use. Its for me to use to get EXA.

    8. Re:Unfree by Jah-Wren+Ryel · · Score: 3, Insightful

      How much money do you have? Because you're gonna have to buy the IP of a LOT of companies in order to open source their stuff. Lots of proprietary stuff in the chips and the drivers, from what I hear.

      That's the same tired old line we've been hearing since the days before XFree86, when it was just X386. And you know what? It's all bullshit.

      All the cards through-out the years that vendors have kept proprietary, they all eventually received 3rd party open-source drivers and you don't hear a word about those 3rd parties being sued or otherwise harassed for violating anyone's IP. All it took was time and effort for people to reverse engineer the proprietary ms-windows drivers.

      --
      When information is power, privacy is freedom.
    9. Re:Unfree by Lussarn · · Score: 3, Insightful

      It takes *serious* amounts of money to fund that sort of development staff, and it's not something you and me and a few other likeminded folks are going to be able to fund.

      You are talking about a different issue. When he said he wanted a free software driver he did not said the developers working on it shouldn't be payed. Nvidia and ATI can throw 1000 paid developers on the problem for all I care and still develop a Free software driver.

      Nvidia would still sell the hardware even if the driver where Free software. What good is the driver without the hardware?

      Now, you would maybe say Nvidia can't open source the driver because they don't own all of it. I say bullshit, If there is a will there is a way. The will just isn't there today, but the future might change that.

  4. Re:Luminocity by Anakron · · Score: 3, Interesting

    http://live.gnome.org/Luminocity
    There. Fixed that link for you.

    --
    There are 11 types of people. Those who understand binary, those who don't and those who are sick of this lame joke.
  5. How do they know they are fixed... by Phariom · · Score: 4, Funny

    "Compared to the xserver module code in freedesktop CVS a lot have changed. The new code contains an uncounted number of bug fixes, some major restructuring and a few additional features."

    ...if they didn't count them?

  6. Not opened up by Anonymous Coward · · Score: 3, Interesting

    To say the development of XGL opened up is to assume it was closed before, which is absolutely untrue.

    Dave did major changes to XGL (as you can read in his post), and it's simply not possible to merge the code back while in the middle of a transition such as that. On top of that the X.org tree was pretty much frozen to allow the transition to modular X and the release of 7.0.

    The "Novell closed XGL" conspiracy came from people with their own personal agenda against Novell (and Ximian).

  7. Re:No Games Yet? by Mad+Merlin · · Score: 4, Informative

    If you're talking about 3D acceleration (through OpenGL), the NVidia drivers for Linux are just as fast as the Windows drivers, if not faster. XGL is about rendering a 2D desktop using OpenGL (and thusly, taking advantage of the graphics card moreso to speed up rendering and get nifty effects), which Windows doesn't do. XGL really has nothing to do with games, and Linux isn't "now matching" Windows in any respect, it's pulling further ahead of it.

  8. Another reason to care ... by JoeBuck · · Score: 4, Insightful

    .. is that future video cards might well be 3D-only, and the old 2D interfaces that X relies on won't be available. You'll have cards designed pretty tightly around the OpenGL spec and related specs, and if you don't have a way to do X with such a beast, forget using the card with Linux.

  9. XGL is... by CarpetShark · · Score: 5, Informative

    The point of XGL is to take the 3D engine in most graphics cards and use it as the basis for X's acceleration.

    Before, the 2D acceleration engine was used, but 2D has fallen behind in terms of performance, and 3D can do everything 2D can do, plus more. XGL uses OpenGL to render bitmaps, as well as to render video, composite alpha-channeled windows, rotate and deform windows, etc. I think font antialiasing will benefit, via a (potentially) faster XRender implementation. I gather it's also integrated with glitz already, which means that vector graphics like SVG and scalable icons, buttons, widget themes, etc. will also be done via OpenGL.

    The one remaining gap (that I know of) is hardware support. The Novell guy releasing this (sorry, I forget his name right now) seems to say that it works with relatively minor changes on Free Software DRI drivers. I know that was always an intention, at least. So, hopefully, we'll see more drivers trying to support DRI as base level of driver compliance, rather than as an afterthought. The X desktop will be faster, smoother, and more featureful... so long as desktop developers don't go overboard and expects everyone to have next-generation 3D engine performance just to run a wordprocessor ;)

    All in all, a very good thing :)

  10. Does it matter? by Stalyn · · Score: 3, Interesting

    Does the source open during development matter? Look how much David Reveman got done by himself "behind closed doors". Really what matters is the source is available upon release to the public. Before that it doesn't really matter. The truth is the majority of the Xorg community doesn't believe in an OpenGL accelerated desktop. Look at the mailing list. The only people who do are a small group of coders who most likely do not have the time to actually achieve something worth using.

    However if a company like Novell did pick up the project and paid developers to work on it full time but the source would be closed until release... well tough luck. In reality the only reason David released the code now was to get it into the Xorg tree. That way they can continue to "code-drop" to a tree that can be used by everyone, instead of kdrive which is for developers.

    Also the Xorg developers seem to be concerned with Xegl which David isn't even working on. I dont care either way. Just get it done.

    --
    The best education consists in immunizing people against systematic attempts at education. - Paul Feyerabend
    1. Re:Does it matter? by Anonymous Coward · · Score: 5, Informative

      Two things:

      1. XGL wasn't developed in-house for Novell.

      XGL was started by independent free software programmers. Novell highered some of them and then took the developement 'in-house'.

      It started off open, Novell paid some of them to concentrate on it on the 'inside', now they are openning it up again.

      2. You don't understand the relationship between Xegl and XGL.

      XGL is a _toy_, it's a pre-view. It's a beginning. It's forming the basis for future X servers, but it is not actually usefull itself.

      XGL requires another X server to run on. Similar to Xnest.

      Xegl is based on XGL (again started and worked on originally without any Novell involvement), it is a standalone X server that will actually be used.

      You see one is useless without the other. XGL is worthless outside of developement. Xegl is worthless without the basis.

      Xegl is called Xegl because it takes OpenGL and add the EGL extensions to it. These extensions were originally designed for embedded work, but can be used with a full-fledged OpenGL system like Linux has. What it does is allow OpenGL programs to send signals to change screen resolution and things like that. These extensions will 'fill out' the OpenGL API so that you can use it effectively for a basis of a standalone system.

      Originally Linux's OpenGL stuff was like this. With original Mesa solo you didn't use X to run 3d accelerated applications. With things like GLX (open sourced from SGI) to 'mix' or manage OpenGL applications on a X server.

      There still are some gaps though.. Indirect rendering isn't very hot, for instance. That is when you run a application remotely (X Windows is a networking protocol after all, like HTTP or whatnot) you can't get OpenGL acceleration working on it.

      This, combined with other advances such as 'Modular X', 'X Damage', 'X composite', and 'XGL'/'xegl', is helping to move the X system from the 1980's era technology (were it is now) to the 2010's technology (where it will be in a couple more years).

      Hopefully it will allow you to do things like display your desktop applications on your laptop or handheld (which it can do now) but also allow you to easily transfer applications between devices while they are running, and to display to display. All with nice acceleration with complex window managers. Oh and don't forget Vector-based graphics (which we will have with next releases of Gnome and KDE), which will be OpenGL themselves accelerated in a year or two.

      EXA will help this a bit.

      As X server switch over to EXA for the time being and applications utilize it's acceleration more and more.. this EXA stuff translates suprisingly well to OpenGL.

      Also it will have the added benifit of moving X off of the hardware.

      Right now with X.org's X server you have all this extra crap it has to do with hardware drivers and such. By moving to pure OpenGL then each OS can handle the protocol stack on themselves. You can have Linux framebuffer with Mesa-based DRI drivers, propriatory drivers or have software Mesa on Netbsd, some sort of weird embedded stuff, or have Window's OpenGL stuff.. It doesn't matter. Let the OS manage the hardware itself and run X windows on OpenGL, just like any other OpenGL application.

      Right now we have Framebuffer, DRI, VGAcon, EXA and such that all have to fight over the hardware at the same time.

      That's 4 independant drivers from multiple independant vendors.. some from DRI, some from Linux kernel, some from X.org, that all have to use the _same_peice_of_fucking_hardware.

      Think about this:
      1 peice of hardware, 4 drivers.

      How many devices do you expect to function properly like that?

      With OpenGL-based X server, then you have only one driver that can do everything. It can even do console if you want.. (although I don't expect Linux to drop vgacon as long as video cards support legacy vga mode)

      Also if your a disapointed programmer wanting to work on X then I suggest you look strongly at XCB.

  11. Re:No Games Yet? by entrigant · · Score: 5, Informative

    Just a few minor corrections :).

    The Composite extension currently available in Xorg facilitates an alternative approach, based on XRender which still uses the video card's 2D engine, and that's quicker to implement, but not as robust or flexible.

    Repeat after me. There is no formal relationship between XRender and Composite. The Composite extension simply provides a method for an external program to handle how the desktop is rendered. It hands that program a bitmap for each window, and it is up to the program to do something with them. xcompmgr and KDE's composite manager, which is based on xcompmgr, use XRender to blit those bitmaps in the proper order. Luminocity, gnome's next gen window manager, contains a composite manager that uses OpenGL to render the desktop. The point is that composite manager can do whatever it wants to the bitmaps it recieves. It can invert the colors, make it translucent, flip it upside down, or tile a picture of elmo all over every window. That is the power of Composite.

    And XRender doesn't benefit from hardware acceleration -- they're working on that now, under the name "Exa"

    EXA is the replacement for XAA. XAA and EXA are 2D acceleration architectures. Much like OpenGL is to 3d. They provide the raw methods for hardware accelerate bit blitting, line drawing, 2d polygons, etc. Some cards accelerate more things than others. A video driver can provide 2d acceleration using XAA or EXA and not accelerate the XRender extension. The default configuration for the propietary nvidia drivers does this. However it uses neither EXA or XAA, but a propietary acceleration architecture. Not that it matters much as it is transparant to applications. XRender can, and is accelerated under many drivers. EXA and XAA do not depend on it, though, and it does not depend on them.

    but the nice thing about OpenGL is that we already have it accelerated.

    We already have 2D acceleration as well. The nice thing about OpenGL is it is usually faster and more feature rich. XGL aims, as far as I am able to tell, to replace all the functionality your typical driver comes with using OpenGL: EXA, XRender, Xv, RandR, etc.

    Basically, what this boils down to is that XGL will draw the content of the windows: the text, the buttons, the images, etc. Then, if there is a composite manager, it will send the content of those windows to it, and it will do with them as it sees fit. Once the window contents are sent to composite what happens next is beyond the scope of XGL.