Call to Action: Ensure that OpenGL remains a first class API under Windows Vista

Give OpenGL legal protection from any threat by Microsoft: Have it legally declared a critical access to an “essential facility”. The essential facility here is the OS, with the required access being the API represented by OpenGL. Companies are not allowed to monopolize or restrict access to an essential facility.

OpenGL is used in approximately 90-95% of industrial applications. (Number quoted from a Microsoft employee recently). These applications include many critical to the health, welfare and safety of the general public.

Critical applications using OpenGL include Computer Aided Design (CAD), industrial plant design, mechanical design, architecture, medical imaging, etc. The industrial plants designed with OpenGL produce every manufactured or refined product essential to human life including: food processing plants, pharmecutical plants (including plants that make vaccines), oil refineries, etc.

Loss of the use of OpenGL or a degradation in the performance and quality of OpenGL would constitute both a danger to the public welfare and a serious economic hardship on the companies producing vitally important industrial design software using OpenGL. These companies have invested heavily in producing reliable and long lived software for serious applications essential to human life. Its both expensive and time consuming to have to constantly re-write the graphics software, re-certify the whole product and re-deploy an industrial application just so that it will run on the latest version of an OS. Being able to upgrade easily to the latest and fastest hardware, could mean the difference between life and death in some time critical medical diagnostic applications.

Entertainment software such as games are a different product altogether from serious industrial applications. Games while entertaining are not critical to human life. Games also have a very short life span and are less affected by constant changes to a graphics API such as DirectX.

OpenGL has been a reliable and stable API providing a very long lifetime for critical industrial applications. OpenGL Applications written more than 10 years ago on OpenGL 1.0 still run on the newest version, OpenGL 2.0. The design applications are in use for many years during the design and construction process. Typically it can take 3 to 7 years or more to design and build a complex industrial plant. The stability and performance of OpenGL is critical to the successful completion of such a complex and important project. Every version of OpenGL is a superset of the versions before. OpenGL applications written on any older version of OpenGL are always guaranteed to work on any newer version of OpenGL. The DirectX graphics API has been re-written in approximately 9 versions since its inception. Some versions of DirectX were radically different from other DirectX versions. The longevity of DirectX applications has been adversely affected by its everchanging interface. An everchanging or poorly performing graphics API is not an acceptable substitute for OpenGL API with its proven characteristics of performance, reliability, stability and longevity.

OpenGL is a serious tool used in serious applications critically important to the welfare of virtually every human being on the face of the earth. Its time to give it legal protection as the access to an “essential facility”.

What is an “essential facility”?

The following information was gleaned from various web sites:

There is a well established legal doctrine of an “essential facility”. Such policies and jurisprudence specify when the owner of an “essential” facility is required by law to provide access to that facility at a “reasonable” price.

An essential facility can be a product such as a raw material, or a service, including access to a place such as a harbour or a distribution network such as a telecommunication network. Essential facilities do not require “infrastructure”. It may be a service connected to infrastructure, e.g. ground handling, or a service with no such connection e.g. interlining. It may also be technical information necessary to competitors such as competitors in the computer peripherals market. Copyright protected daily TV listings used in weekly TV guides (Magill case) or data on Telco customers needed for telephone directory publishers. Under antitrust case law some of the following facilities have been deemed essential: railway bridges, telecommunications network, local electricity transmission network, sports stadium and a multi-day ski-pass scheme. Under EU
case law some facilities deemed essential are: ports (see Sea Containers v Stena Sealink and Port of Rodby), telecoms network infrastructure, electricity and postal networks, gas or fuel pipelines, computer reservations systems for airport airlines (see LEA v Sabena), ground handling services at airports, interlining (see Aer Lingus v British Midland) and payment systems in the financial sector.

Consumer and data protection laws may also apply here and some may be more relevant to the issues discussed here.

@A Developer - 100% right

As I said before, it is not question “whether seamless OpenGL implementation is possible or not?” it is a question of Microsoft “policy” - MONOPOLY. Stronger monopoly, more $$$.

As said by IHVs:
“It would be technically straightforward to provide an OpenGL ICD within the full Aero experience without compromising the stability or the security of the operating system. Layering OpenGL over Direct3D is a policy decision more than a technical decision.”

So questions and answers like “How it could be done?”, “Can it be done?” are useless. It CAN BE DONE, but only if Microsoft is PRESSURED enough.

If they keep hanging to current Vista policy, I am 100% for court approach. Only thing that bothers me is – what if all of this is FUD, intentionally presented by Microsoft at this stage, to scare and bully companies that develop in OpenGL. Damage is done.

Here’s a quote directly from Microsoft’s own current documentation for DevStudio 2003 regarding the PIXELFORMATDESCRIPTOR:
OK. So Microsoft is now, with Vista, going to change what the generic implementation means.

And nowhere did Microsoft promise that this would never be changed.

Loss of the use of OpenGL or a degradation in the performance and quality of OpenGL would constitute both a danger to the public welfare and a serious economic hardship on the companies producing vitally important industrial design software using OpenGL.
Well, considering that OpenGL on Vista will neither be lost nor degraded in performance or quality, this statement (and the ones following it) are of no value in this discussion.

OpenGL is a serious tool used in serious applications critically important to the welfare of virtually every human being on the face of the earth. Its time to give it legal protection as the access to an “essential facility”.
My God. I’ve read some BS in my time but… wow. Just wow.

From the misinformation about how D3D versions work (you can still use all the old interfaces in D3D, and they are all still supported, and there have only ever been 6 versions of D3D to begin with) to the notion that losing OpenGL support in Windows (which, btw, isn’t even under discussion) would mean that people die is evidence that human capacity to produce FUD is truly limitless.

Face facts: if Microsoft said tomorrow that Vista would be completely without OS support for OpenGL, the world would not end. People would not suddenly start dying, nor would their future lives be endangered. Buildings would not collapse because of it, nor would the design of such buildings and facilities be in any way endangered. At the absolute worst case, instead of upgrading to Vista, they upgrade to Linux, or perhaps MacOS if Apple makes that possible. Or they stick with XP.

And even if they decide to stay on Windows and convert their apps to be D3D apps, it doesn’t mean that their app will fall apart in 2 years. D3D9 has been around for a good 2 years now in its current incarnation; the only additions have been what OpenGL would have made as extensions. The next revision of D3D (whether it’s DX10 or WGF 1.0 or whatever they call it) probably isn’t going to radically revamp the interface either; it’s much more about the internals than the externals.

And D3D apps build on older versions of D3D still work, though some of the products themselves may not for other reasons. I’m farily certain I got a D3D 3.0 game up and running on D3D 8 hardware.

As said by IHVs:
Which IHV? I don’t recall that quote being attributed to anyone of relevance except for the original poster. Who, almost certainly, does not work for an IHV.

Only thing that bothers me is – what if all of this is FUD, intentionally presented by Microsoft at this stage, to scare and bully companies that develop in OpenGL. Damage is done.
If the damage has been done, it has been done by the Internet community’s willingness to blow just about everything about this issue out of proportion.

I am not going to write a huge page but I want to voice my concern about MS plans.

Sadly it does not surprise me since I have been developing software, mostly on their platform since DOS 3 and they ALWAYS pull this kind of thing.

Personally I only care because I am an avid gamer and DX games run more poorly through wine than OpenGL ones, of course this is not a problem if developers use OpenGL INSTEAD of D3D and then port it to Linux, but thats another story…

OpenGL = Good
DX = Bad

Just my 2 cents :slight_smile:

From the misinformation about how D3D versions work (you can still use all the old interfaces in D3D, and they are all still supported, and there have only ever been 6 versions of D3D to begin with)

That’s exactly why you have stuff like “DirectX Uninstaller”. It is “supported” and works “fine”. I had problems with older DirectX games, search google, read forums…

Which IHV? I don’t recall that quote being attributed to anyone of relevance except for the original poster. Who, almost certainly, does not work for an IHV.

Sorry, my mistake. Original poster just doesn’t have any idea what is IHV position. As A matter of fact, opengl.org just tends to post things (that may have large impact on OpenGL community and future development) without checking it first… not likely. One of developers (Ati or 3D Labs, not sure) said that all of them (Ati, NVidia, 3D Labs) are willing to implement seamless OGL ICD but need help from Microsoft.

So I don’t know, maybe this is the next great thing from Microsoft, and there is nothing to be concerned about. Many others and me just fail to see it that way…

Sorry, I just have to flush guys…

Nothing in the world can persuade me to belive that mankind should follow the leadership of one single company, despite an apparently devine format.

  • When it comes to Microsoft I get associations to this joke: What’s the differens between God and a surgeon? - God knows he’s not a surgeon!

I live in Denmark, a small country proud of being at your service with Carlsberg, LEGO, The Dogme Movies, Bang&Olufsen, The Law of Jante, H.C Andersen and a few bloody stories about Vikings. Perhaps I should have erased the The Law of Jante, but for once in my lifetime I think someone could benefit from an adoption of this law - Microsoft - perhaps they could, in long terms, end up being a fair company…or storywriter…H.C Andersen wrote the story about an ugly duckling who turned out to be a beautyfull swane. Microsoft is writing the reversed version of this story.

And what a story to tell our kids! Terrorism against an innocent open source movement. Another great plot for Hollywood - I hope it gets the same fair outcome as the best movies, you know where all attempts to take over the incredible beatyfull blue planet will be granted the same destiny as Eva and her husband in Berlin.

I don’t want to put any links in here refering to statements or whatever could prove that Microsoft is fighting for it’s existence, google yourself.
Instead I’ll just point to a single dilemma every businessman is facing: “It’s business, we have stockholders to worry about!”. Is he limited?

Microsoft now has to limit their software integration in an attempt to survive…the open source vision has the opposite approach!

And life too…quote from Jurassic Park - “Life finds a way out” :wink:

I have to agree with Korval, this thread is filled with FUD and lacks some serious info about the problem.

Did someone actually write to Ati, nVidia, 3dLabs, Intel? Could you post their replies if you got any?

Did anyone write to Microsoft to ask if they mean to help solve the problem or not? Again, could you post the answers?

Please don’t turn this in a Linux VS Windows flaming war, there’s plenty of them around the web and I’m pretty convinced they don’t help solve problems!

Byez =8)!
Ob1

[b]

What this topic is about is that on earlier MS products, vendor ICD’s provided an enhancement of the system by bringing hardware acceleration and new extensions at no cost. Now, on Vista, the hardware ICDs doesn’t integrate seamlessly on the OS anymore, and furthermore disable vital parts of the OS in order to run while they are installed.
ICDs do still integrate into the OS just fine. And they don’t “disable vital parts of the OS” when they are installed; they only disable desktop compositing, and only when they are activated. Anything else is misinformation.

Remember: ICDs come with graphics drivers. And people (particularly gamers) will still be updating their graphics drivers regularly. Driver developers will not be shutting down parts of the OS just because a user decided to install their drivers.
[/b]

IMHO, on Windows platform, the window manager is a vital part of the OS. Why act as if OpenGL broke the desktop composition? If hardware vendors are able to full integrate GL ICDs with aero, why MS doesn’t supply the appropriate information?

[b]

The fact is that before, MS OpenGL software implementation was an aid in the rare cases an ICD were not installed, while MS Vista’s OpenGL 1.4 implementation is designed to be the first one to use and to fall back to hardware ICDs only in rare cases.
That is also misinformation/erronous. The ICD mechanism is not changing. It will not suddenly start turnning accelerated pixel formats into generic pixel formats. If your app has been getting accelerated pixel formats, and an appropriate driver has been installed on the machine, it will still get accelerated pixel formats under Vista.

It is only in the cases where a user gets (or a program wants) a generic pixel format that they will get this expanded version.

[/b]

You have probably seen the report on this thread at http://www.organicvectory.nl/ in which it is stated that a fullscreen working application doesn’t run on MS 1.4 implementation. That is an example of an accelerated pixelformat that doesn’t work on Vista’s 1.4.

One thing I’m wondering: if MS is no longer related nor affiliated to OpenGL, why do they bother to implement a new 1.4 GL subsystem instead of sticking with old 1.1? Is it a hack to hopefully make the most existent GL applications work and diminish the number of complaints?

Originally posted by Ob1:

Please don’t turn this in a Linux VS Windows flaming war, there’s plenty of them around the web and I’m pretty convinced they don’t help solve problems!

I think there wasn’t any Linux vs Windows flaming on this thread, mainly because it is Windows Vista what is on topic. Some people named Linux or Mac – that’s all-- but never the virtues of some OS over another.

I believe the reason why many people (myself included) see this as a move by Microsoft to “kill” OpenGL, is because they’ve pulled the exact same “embrace-and-extend” crap before (in various different incarnations). Their webbrowser Internet Explorer is perhaps the most famous example, Windows Media Player the most recent.

Yes, this may just be a red herring. However, as people have stated before, as things stand OpenGL-developers on Windows have one of two choices:

  1. Go with OpenGL 1.4 and the features Microsoft decides should be supported, or
  2. Break some features of Aeroglass, using a vendor-supplied driver.

Neither of these alternatives are acceptable. I agree that there are many legit reasons why Microsoft won’t cooperate with hardware vendors at this point (and unstable APIs is one of the most plausible ones). I find it alarming, however, that ATi/nVIDIA/3DLabs haven’t received any word whatsoever from Microsoft regarding this.

I won’t pass any judgement until I see how this goes, and I’m hoping anyone suspicious of Microsoft does the same. But, mind you, if Vista’s OpenGL support ships in the state it’s now, then this will mean the death of OpenGL on Windows - Unless the hardware vendors can fix it within six months or so.

So yes, this issue is quite serious. But there’s not much you as a single individual can do, so let it rest people! Complain to ATi/nVIDIA/3DLabs/Microsoft instead of posting crazy conspiration theories. :wink:

petition pls, so we can sign and make our voices heard…

cannot afford to wait till Virus Infections Spyware Trojan Adware OS finally released, by then it might be too late, as develpers might by then have recoded their apps to use DX instead of OGL…

All this is non issue???

If you say OS you’ll hear answer Windows in 99.99% cases.
If you buy new computer you get latest windows version pre-installed with license in 99.99% cases - Dell, HP, Alienware nobrand or whatever. Even if computer specs are just bare theoretical mininum (I remember few lappies with XP preinstalled despite 128 or 64 MB RAM)
If you have problems with applications only 10% of people will download newest driver (and prolly won’t even uninstall previous to avoid problems), 1% will check properties to find that there are compitability options hidden in one of the tabs, 0.05% will experiment with in OS settings to get stuff right and 0.00000000000000000000001% will try to find MS compitability kits, that are so self explanatory-working that you don’t even need to click your mouse.

And lets remember what is the first thing avg. user says about OS - “It looks cool, it has fancy effects”
Security and other things is BS for Avarage Joe.
Breake the fancy shell and you’ll be one responsible.

I wonder what to do in Vista if you have windowed GL2 app. I don’t think I have rights and time to implement code in my application that downloads vendor driver and forces it to be primary, but then again if my application is intended for those 90% ppl who barely can make folder you heard me right 90% I have pretty much dead end, xcept maybe support staff of 1000ppl who can drive home and install drivers, turn off UI and get yelled at for making my fancy windows look like crap.

Pretty much it can be summed up this way - if there is no preinstalled vendor driver with prompt to use ICD at runtime when first Vista preinstalled computers ships, then GL is just a joke on windows and that tiny market share it holds.

compitability tab or driver download is sure death for mainstream GL apps

One of developers (Ati or 3D Labs, not sure) sad that all of them (Ati, NVidia, 3D Labs) are willing to implement seamless OGL ICD but need help from Microsoft.
It was Barthold from 3DLabs.

According to JD, “Gamedev.net has a remark from ati dev who thinks this is going to be fixed and become a non-issue.” I haven’t been able to find a thread on GameDev with this commentary, but GameDev’s forums aren’t exactly easy to search or read. I trust JD enough to accept that he’s telling the truth, so it seems like the issue will be resolved as it should have been: behind the scenes.

Why act as if OpenGL broke the desktop composition? If hardware vendors are able to full integrate GL ICDs with aero, why MS doesn’t supply the appropriate information?
First, how do you know that they haven’t? It’s not like anyone on this thread are being kept appraised of the day-to-day operation of any IHV or Microsoft. For all we know, the problem may have already been solved by now. Unlikely (as I think 3D Labs or ATi would have told people that it was being corrected if it had been done), but possible.

Another explaination is that Microsoft isn’t finished with Vista. To give IHV’s information about a product that isn’t even in full Beta could cause them to modify their drivers entirely wrongly if Microsoft has to change things at the last minute. It wouldn’t take a major change in desktop compositing to make the IHV solutions suddenly cause Vista to crash when an ICD starts up.

Vista isn’t launching for a good year or so. Give it time.

Pretty much it can be summed up this way - if there is no preinstalled vendor driver with prompt to use ICD at runtime when first Vista preinstalled computers ships, then GL is just a joke on windows and that tiny market share it holds.
Microsoft didn’t ship Windows XP with an ICD either. Any computers you buy that have ICD’s installed were done so by the computer manufacturer. Since ICD’s are part of graphics drivers, there’s no reason to suddenly expect computer makers to start shipping their computers without graphics drivers for the hardware in question. As such, this argument is moot.

In response to:

>>I’m farily certain I got a D3D 3.0 game up and running on D3D 8 hardware.

So, you think that the interfaces are all there and are still supported eh? A quick Google pulls up a great deal of information contradicting this assumption such as:

Q. After installing the DX 8 SDK, I recieve the error LNK1104: Cannot Open File “d3dim.lib” when attempting o compile my program.
After installing the DirectX 8 SDK, you may recieve the following error when compiling existing source code written for previous versions of DirectX:

LINK : fatal error LNK1104: cannot open file “d3dim.lib”

This is because the library for Direct3D Immediate Mode (now called DirectGraphics) has been renamed as D3D8.LIB. To correct this, link to D3D8.LIB instead of D3DIM.LIB.

Looks like Microsoft renamed functions/modes as well as the libs/dlls doesn’t it? So that means your old game is highly unlikely to be actually be using anything in DirectX V8.

What the games that still run are doing is quietly installing an old copy of Direct3D Version 3 software. The Direct3D V3 game is not running through DirectX V8 software - the game is using the old copy of D3D that it loaded when it installed. If D3D V3 installed itself properly, you should find an entry for it in Add/Remove programs. If the installation just copied the files over then you can troll for the dlls.

Obviously you are not familar with the long term problems caused by Direct3D and DirectX incompatabilities between versions. This misconception is common. Even Microsoft has admitted that the constant interface changes have long been a serious problem. Check out the numerous complaints over the years on the game boards and sites about the incompatabilities of various versions of Direct3D and DirectX, its a well known problem.

In the course of software development, its a good idea to try and use the current version of a compiler to keep current and take advantage of the latest API’s and compiler optimizations for newer hardware. Frequently, when going to a new version of the compiler, the ability to use an old version of an API is lost since its typical for only the latest version of an API to be supported and not some old archaic one. Its a really good idea to compile the entire application on the same compiler - weird things happen if you don’t and sometimes it just flat out doesn’t work. Industrial applications are updated on a regular basis with new features needed by customers. New features help revenues. Rewriting the graphics interface to basically do the same thing the old one did, does not pay back a dime. The money spent on a graphics interface re-write could be better spent on writing tools that help your customers do their jobs better and faster. New, improved, better, faster features will increase revenues and keep a company solvent.

For a high volume, short life game, an experimental and constantly changing graphics API is not such a huge issue. Games make so much money that re-writing an interface is no big deal in comparison to the net return on investment.

But, for a low volume, mission critical application, having to constantly change or re-write the software interfacing to the graphics engine is simply not economically feasible. You spend a lot of time re-writing the code and re-testing the app to make it do the same old thing, nothing new. An industrial application’s seat count runs in the thousands of copies not the millions. Nothing tangible is gained from the constant outflow of money to re-write code to do the same thing. You aren’t going to make the cost up on the volume.

Your customers may be delayed in going to better hardware and OSes due to the lack of support for the old graphics API on the newer OS. If they are stuck on slow old machines its entirely possible that critical projects may be delayed because they simply could not get their work done in time. On some of these big number crunching projects, having faster hardware can cut weeks or even months off of a schedule. Performance does matter. The data sets involved can be huge and must be displayed real time. Sorry, but 5 DVD’s worth of pre-drawn game style bitmaps for bit-blitting don’t cut it in real-time applications. You have to draw the real thing in its current state. While the OpenGL interface may be available, deliberately degrading performance 50% below what it could be, is not acceptable for a real-time application.

Windows NT 4.0 was frozen on Directx V3 for eternity while new versions of DirectX were made available to Windows 95/98/2000 customers. Low volume Industrial Apps that have to support several versions of the Windows operating systems are hosed in this unstable scenario. The same standard version of OpenGL was available for all operating systems completely eliminating the compatability issue. So, the same application software ran on the various Windows OS’s without a hitch.

One of my customers was using NT4 - it was slow as a dog on his extra large data set. We got him to switch to Windows 2000 and with the improvements to memory management on 2000 that customer got a 4x performance improvement on the same machine with the same data set and the same software. The customer had been behind on schedule - he got caught up in a hurry. OpenGL made it possible to run the identical software on two different versions of the Windows OS without a hitch. NT 4 was frozen on D3D V3 while Windows 2000 was up to DirectX 7. If we had used DirectX instead of OpenGL there is no way that the same software would have worked on the two different operating systems with the performance our customer needed.

Having an Open non-proprietary graphics interface standard that works across different versions of the OS for many years makes it possible to run software seamlessly. At the same time software development and maintenance costs are reduced for the application. Its important to keep the costs in line for low volume but critically important applications. Otherwise, no one could afford to do the low volume applications and the technical capability would be lost.

‘A Developer’ I think you should voice your concerns with MS. I understand the d3d interface issues and what a pain it is to rewrite the init code for the zillionth time, etc. But I think we shouldn’t turn this discussion into d3d vs. gl. I can’t get into gamedev but when I do I’ll try to find the page of ihv responses and post it here. I think it was one of news posts on the main page inside the topic discussion thread. Also, perhaps in the opengl subforum in a thread that got closed.

Microsoft didn’t ship Windows XP with an ICD either. Any computers you buy that have ICD’s installed were done so by the computer manufacturer. Since ICD’s are part of graphics drivers, there’s no reason to suddenly expect computer makers to start shipping their computers without graphics drivers for the hardware in question. As such, this argument is moot.
If we are talking about possible security risk and degradation of visual experience that most users stand for, then I doubt manufacturers will willingly include ICDs. I bet MS will prolly advise not to.

Of corse there might be misconceptions and so, but so far that’s likely result of current action if information given is correct.

Originally posted by Korval:
[QUOTE]Vista isn’t launching for a good year or so. Give it time.
Sure, no problem.
And after it is released MS still hasn’t cooperated with the IHV on the matter, we can come here and debate some more. :slight_smile:

DirectX is a hellishly complicated API relying heavily on the equally hellish Win32 framework, and doesn’t even have the same graphical power as OpenGL.

OpenGL is a staple, used by developers the world over, its benefits lying in its cross-platform compatibility. OpenGL is a lot easier to use, and can be used alongside the equally easy SDL framework.

All Microsoft will gain from this is disrespect. People will turn to Linux and Mac due to the continued support of such widely acclaimed technology. Like I say, DirectX is so stupidly clumsy and complicated that you’d be hard pushed to port it to anything else, whereas many of the huge software houses use OpenGL all the time.

thanks ukdeveloper, your sentiments are deeply appreciated.

there have been some good ones so far, but i think this one takes the cake.

heck, now i forgot what this is about.

Originally posted by ukdeveloper:
All Microsoft will gain from this is disrespect. People will turn to Linux and Mac due to the continued support of such widely acclaimed technology. Like I say, DirectX is so stupidly clumsy and complicated that you’d be hard pushed to port it to anything else, whereas many of the huge software houses use OpenGL all the time.
Not going to happen, they’ll do whatever they please and period. IE, MP, .NET, spying on your habbits/software etc.
What they get sued for and so is just a small slowdown.

Moreover, don’t fool yourselves, 90% Avarage Joe’s are not going to switch to Linux because of GL, we are going to switch to DX, that’s the problem.

We should do whatever we can to protect GL, better safe than sorry