MS and OpenGL: supporting it to death?
Microsoft denies it's dropping OpenGL support; nevertheless, all roads seem to lead to DirectX
Last week's Register article suggesting Microsoft was pulling Windows support for OpenGL has generated considerable response, some of it critical, some positive and some positively menacing.**
Microsoft itself has been particularly keen to stress that OpenGL will be supported by Windows 2000, and in a related matter that the Fahrenheit project is alive and well; but curiously, none of the rebuttals we've received either directly explain the OpenGL 'issues' that arose at Win2k RC2 stage or refute the basic thesis that Microsoft is retreating from support of OpenGL in favour of its own Direct3D.
Our original piece was based on an email string involving Microsoft Direct3D evangelist Philip Taylor and a number of bug reports from the Win2k beta programme. Taylor seems to have been somewhat more vehement on the subject ("OGL is not strategic for us... as the last three years of history in the multimedia space have shown") than Microsoft would have preferred, but the bug reports themselves say quite a bit about where Microsoft was at with OpenGL support at RC2 stage.
In the words of Microsoft employees: "There is no OpenGL support for any video driver that will ship with Windows 2000." "We are not supporting OGL until D3D is 100 per cent." "It was determined that it is requiring an ICD and it [sic] not supported. This bug will be closed 'By design.'" And our favourite: "Ya know, for the record, I have this card at home myself. This kinda sucks, IMHO."
These were all written in the October period in response to bug reports submitted after the release of Win2k RC2, when support for OpenGL was apparently removed. Clearly Microsoft did pull something in the way of OpenGL support, and Microsoft also says that it will not include OpenGL drivers with the initial shipping version of Win2k, but does that really constitute, as we said, Microsoft quietly dumping support for OpenGL?
That depends on the way you look at it. Microsoft PR company, Waggener Edstrom,*** has sent us our very own FAQ, which says that Windows 2000 will "absolutely" support OpenGL ICDs (Installable Client-side Device Drivers). "While it is true that OpenGL drivers will not ship in the Windows 2000 box, they will be supported by Windows 2000. OpenGL ICDs will be provided directly by IHVs (either in their box or on their web site). OpenGL ICDs may also be pre-packaged on systems by OEMs. In addition, Microsoft will also post OpenGL ICDs that meet its quality requirements on the Windows Update web site."
Meanwhile, Tom Hubina, OpenGL game dev FAQ maintainer, tells us that "support for OpenGL has never been pulled from Win2k beta. The ICD mechanism (which contains a default software renderer) has always been included, but not many board manufactures have made Win2k compatible drivers available". Hubina argues that having the IHVs ship the drivers is precisely the way OpenGL support has always worked, so in his view there's been no change. But that doesn't explain the comments from the MS staff handling the bug reports, such as "We are not supporting OGL until D3D is 100 per cent" and "This [OpenGL] support was pulled from these drivers based on evaluations by both vendors and Microsoft."
If we rule out the possibility of Microsoft's own bug-handlers being gloriously misinformed, the evidence would still seem to support the case that Microsoft at one point intended to provide increased OpenGL support, but that it backed off over the summer. Our suspicion is that Fahrenheit had something to do with this change (see below). Waggener Edstrom says Microsoft is "absolutely" not dropping support for OpenGL.
It "is currently the preferred low level 3D API for many professional graphics applications... For consumer graphics applications (eg. those geared toward entertainment), while the vast majority are written to Direct3D, there are some that also choose OpenGL (eg. Quake). Microsoft is committed to providing ISVs what they need to get their graphics applications to market and will continue to support OpenGL as well as Direct3D."
This is basically the 'no change' argument, but it should be noted that the development and promotional efforts behind OpenGL for Win2k will all be made by the IHVs, while the situation for Direct3D is substantially different. As far as OpenGL support is concerned, Microsoft's policy appears to be: 'if people want to write OpenGL drivers, we're not going to stop them.'
But if you pick through Microsoft's current and past policy statements on DirectX, OpenGL and Fahrenheit, it becomes clear that something rather more dramatic was at one point envisaged for OpenGL, and that actually it still is -- but not quite yet. Fahrenheit was initially a joint SGI-Microsoft project which the companies said would "define the future of graphics." It would do so by evolving a Fahrenheit low-level API from Direct3D, DirectDraw and OpenGL on the Windows platform, and this would "provide functional compatibility with Silicon Graphics' OpenGL technologies."
One might have expected the latter by Win2k shipment, but quite clearly one is not going to get it. Two other components of Fahrenheit, Fahrenheit Scene Graph API and Fahrenheit Large Model Visualization Extensions, were intended to be cross-platform. These two are currently in alpha, due for beta by year end (they were originally due in first half 1999), while the low-level API, which was originally scheduled for first half 2000, doesn't seem to have a date attached to it now, and may not ship at all. Not exactly, anyway, but we could well see it in a future incarnation of DirectX.
The MS-SGI double act on Fahrenheit broke down over the summer (we have official announcements from November, while Tom Hubina says August -- we defer to his greater knowledge). SGI abandoned Irix Fahrenheit, and described Fahrenheit as a Windows-only technology. This is a clear rift between the Microsoft-oriented cross-platform Fahrenheit project and OpenGL for the rest of the world. SGI claimed it was pointless supporting Fahrenheit on only some of its platforms, citing Linux as the obvious missing one, so the logic of that is that it will now take a trad 'open' OpenGL approach instead.
Microsoft, however, is still touting Fahrenheit as cross-platform, promising implementations for HP-UX, Solaris and AIX, and Waggener Edstrom tells us the Fahrenheit project is "absolutely" still alive. "Microsoft continues to invest in Fahrenheit and believes it is very important technology." It is important for both Microsoft and for the future of OpenGL. Take, for example, this Microsoft statement on the subject: "[Fahrenheit is] Microsoft's codename for the future release of DirectX that will contain OpenGL technology." And a Microsoft Developer Network 1998 interview with director of Windows multimedia Jay Torborg is also highly informative.
Says Torborg: "With Fahrenheit, we want to make it as easy as possible for developers to integrate their existing OpenGL applications to the DirectX architecture... With DirectX 6.0 we've caught up [with OpenGL]. DirectX is now a mature API as well, and the quality of our documentation and sample code is acceptable now for OpenGL types of application." These statements paint a familiar picture.
SGI and Microsoft had originally got together on OpenGL because Microsoft needed 3D graphic support for NT. Fahrenheit can be seen originally to have had two separate objectives, depending on which partner you were. SGI, in the run-up to the launch of its NT-based Visual Workstations, needed cross-platform support, while Microsoft, from a position of greater strength than previously, wanted to evolve its graphics efforts into the more 'owned' DirectX area.
So while now Microsoft "supports" OpenGL for Win2k by letting the IHVs produce the drivers, "OpenGL technology" will be folded into Direct3D, and this maybe casts some useful light on the beta programme statement that OpenGL won't be supported until Direct3D is "100 per cent." Meanwhile, for over a year now Microsoft's strategy as stated by Torborg has been to set up the mechanisms that will allow and induce OpenGL developers to switch to the "mature" DirectX. Unix vendors are all too familiar with the process whereby interoperability becomes a Microsoft Trojan Horse for migration to Windows. Microsoft quietly drops Windows OpenGL support? Oh yes, we think so... ®
Microsoft and 3D graphics: a case study in suppressing innovation and competition Alan Akin's analysis is a little old, but is comprehensive and sheds much light on current events **
Any more menacing than this one and we'll seriously consider forwarding to Special Branch and the FBI -- you have been warned [Back to article]. *** Waggener Edstrom's import in the grand MS scheme of things can be gauged by the fact that although Microsoft Word's dictionary has never heard of Ballmer, it spells Waggener Edstrom with ease [Back to article].