Element 61

Saturday, August 06, 2005

Is Microsoft trying to kill OpenGL?

First of all, huzzah for the grand opening of Element 61 blog. Yay. Now that that's out of the way, on to the good stuff.

It broke recently that Microsoft would not be supporting OpenGL in Windows Vista (codename 'Longhorn') or some such thing. A lot of information is still missing, but this is about as much as we have to go on in terms of facts:

This information came from the OpenGL BOF held at Siggraph 2005 in LA this last Wednesday evening. This was confirmed at the BOF by NVIDIA, ATI and us (3Dlabs).

As soon as an ICD is loaded the composited desktop is turned off on Windows Vista. If you want the composited desktop Aeroglass experience, you will need to make your application go through Microsoft's OpenGL implementation, which is layered on top of DirectX. As pointed out earlier, this layering can have performance implications. Their implementation supports OpenGL version 1.4 only, without extension support.

We believe it possible to provide an ICD with full composited desktop support while adhering to the stability and security requirements in Windows Vista. But we need Microsoft's help in doing so.

Therefore, as mentioned before, please let your contact in the ISV or IHV or OEM community know how you feel about this and spread the word.

For some more information, you can browse these Microsoft Winhec slides:

Windows Graphics Overview [WinHEC 2005; 171 KB]

Advances in Display and Composition Architecture for Windows [WinHEC 2005; 422 KB]

Regards,
Barthold
3Dlabs
So that's it. Everything else we've heard so far isn't credible. There's a "50%" number being thrown around a lot as the speed penalty we're going to see for OpenGL. As far as I and several others can tell, this number is bullshit, pure and simple. But let's take a closer look at what exactly is going on here.
As soon as an ICD is loaded the composited desktop is turned off on Windows Vista. If you want the composited desktop Aeroglass experience, you will need to make your application go through Microsoft's OpenGL implementation, which is layered on top of DirectX. As pointed out earlier, this layering can have performance implications. Their implementation supports OpenGL version 1.4 only, without extension support.
This paragraph has all the good stuff. An ICD, for those of you who don't know, is an Installable Client Driver. In other words, it's what you get when you go to nVidia or ATI's site and download their graphics drivers. So when one of these drivers is loaded in order to run an OpenGL application, as things stand, Aeroglass will be deactivated. Your desktop will revert to Windows XP mode.
This has no implications for full screen OpenGL applications on a single monitor!
So, when does it matter?
  • Multiple monitor setups
  • Windowed mode applications
I'm going to basically assume that the multiple monitor setups are really just a special case of windowed mode applications. As for windowed OpenGL applications, what is there? In short, everything that isn't a game. Game editors, modelers, CAD applications, scientific and engineering software, etc. are all in this class. So when one of these applications starts, Windows Vista has two choices about what to do:
  • Disable Aeroglass, load an ICD, and run the OpenGL app as normal.
  • Use the slow(er) MS implementation of OpenGL built on Direct3D and keep Aeroglass running as normal.
Personally, I have no objections to the first option. The second option would mean that Aeroglass would continue to occupy texture memory and other GPU resources, which would probably hurt the performance of my OpenGL application. The only benefit of the second option is that the 3D display acceleration is maintained, and I don't see this as a huge problem. Apparently some people do -- some of them are fairly intelligent and I trust their opinions. It's definitely a good idea to be pressuring Microsoft to come up with a more agreeable solution. But let's keep things in proportion, shall we? Try not to listen to the slashdot crowd -- OpenGL is not dead in Vista. But it is without a doubt in danger. We can only hope that the IHVs (nVidia in particular) can force Microsoft to remedy these problems. It's still a year or so to the official Vista release, and I have no doubt that MS can fix the problems.

By the way, everybody, and I mean everybody should read the two power points linked above in the quoted post.

2 Comments:

  • The point you seem to miss are the implications. It affects the end user's experience, so the companies making GL apps have to move to DX so that the end users have a decent experience.

    Other than that, there simply is no reason for GL not being given the same privilege as DX, its amtter of exposing the internals to the IHV driver writers, and its MS's seeming unwingligness to do so that's pissing off many people.

    By Anonymous gamedev ap, at 8/06/2005 6:21 PM  

  • Interesting, this is once again Microsoft taking over bit by bit, abusing their quasi monopoly. Just like they always have, and probably always will.

    Me, I stay with XP as the last windows (for gaming), and mainly be happy with what Linux offers me.

    (Please note: I am not bashing MS, not hyping Linux, just wording my choices and my opinions ;)

    By Anonymous Anonymous, at 10/16/2006 11:48 AM  

Post a Comment

<< Home