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

If you can run aeroglass, then your card is DX9.0 card, that’s not 1.4 but rather 1.5 and shader support…

Anyway, I have written a few general computing apps in windowed mode under GL lately, and guess what, they use shaders. With aeroglass they’re not going to run and that’s a whole branch of programs that are not CAD or games…

Originally posted by rtargosz:

IMO, Microsoft will have to continue to support OpenGL in future versions of Windows in order to maintain their partnership agreements with the ISVs. While I’m obviously not privy to the details of these agreements, I have seen first-hand the kinds of pressure AutoDesk and Unigraphics can put on Microsoft.

OK people, new tactic. Everyone email AutoDesk and Unigraphics to insist on decent OpenGL support.

Originally posted by rtargosz:

John Carmack can say what he likes, but the API in DX10 (when you get your hands on it) far Outstrips OpenGL, and provides game developers (and other ISVs) with the ability to do things never before possible in graphics.

Uhh, isn’t it the graphics cards that would enable this “never before possible” effects and not the API? Anyone could write an API to specify unlimited freedom when doing computer graphics. (if the hardware could do it or not is another story)
I would be more inclined to give credit to the Nvidia, ATI, SGI and other engineers for all their wonderful hardware.

Also by the time DX10 comes out, who knows what OpenGL will be like…

I work on application targeted for 3D stereoscopic visualization. DirectX simply does not have the neccesary commands for stereoscopic data handling - only OpenGL does.
Any restriction in OpenGL implementation will kill totaly the market for profesional VR visaulisation systems based on stereoscopy …
My company as well as sever other VR visualisations comapnies will be forced to tell users NEVER UPGRADE TO NEW WINDOWS. If Microsofts wants to get such result - he will get it.

Maybe it’s a little late to cry. We know since a year that there will be no proper OpenGL in Longhorn. When I’ve startet coding hardware accelerated graphics 10 years ago, OpenGL was clearly the better API. But who but id Software used it? Nearly nobody, compared to D3D. That’s the reason why now it’s possible for M$ to start killing OpenGL. Shame on them, but also on developers and publishers following them if there’s a better choice.
I truely hope that M$ will fail to succeed in mobile and console market…

Also an idea. We all know we need strong partners, if we want to stand against Microsoft. I am not able to test, but isn’t google Earth also including a OpenGL mode? I could guess, that if get them on our side and they would use OpenGL-mode require an vendor ICD, many users might not want to use aeroglass anymore, because it is a nice toy (and everybody like this). I also guess that the google guys will some day wanna use Shaders to push up the program a little bit and they also currently try to enforce Microsoft also. Maybe this could be worked out somehow?

Originally posted by Phobeus:
isn’t google Earth also including a OpenGL mode? I could guess, that if get them on our side and they would use OpenGL-mode require an vendor ICD, many users might not want to use aeroglass anymore, because it is a nice toy (and everybody like this).
By the way, isn’t google by some kind of insitution (Mit? Berkeley?).
What I mean here is that maybe we shall engage other people outside the “strictly GL developers”. Having institutions like those two would surely pack a punch… and what about Sun with its Swing GL renderpath? They are windowed. While I don’t think 50% slowdown would affect them, what I mean is that there’s not only ATi, nVIDIA, 3DLabs VS the evil one.
By the way, anyone heard of general stream processing algorithms developed under DirectX?

Stream processors are very promising and GPUs are the (IMHO) the best of them (what others? Image? Merrimac?) so this would make other people suffer badly… altough they probably don’t develop on win32 anyway.

About your comment on D3D 10 features…

Originally posted by sqrt[-1]:
Uhh, isn’t it the graphics cards that would enable this “never before possible” effects and not the API? Anyone could write an API to specify unlimited freedom when doing computer graphics. (if the hardware could do it or not is another story)
I would be more inclined to give credit to the Nvidia, ATI, SGI and other engineers for all their wonderful hardware.
Exactly - MS guy obviously has MS looking at the things. Like: “Lets monopolize industry and then we WILL SAY what hardware should do”… and our way means best way, always, no matter what… we will just sabotage anything better (read GL) if it doesn’t fit in our BIG $$$, market control, policy.

Originally posted by rtargosz:
[b]As the ex-development lead for this project, I can tell you the following without breaking my NDA:

  • The new Vista OpenGL driver is a single file “ogldrv.dll”, code-named “MSOGL” which takes the place of the ICD.
  • The intent here is two-fold: 1) reduce the work of driver developers and 2) reduce the security risk presented by the ICD driver model.
  • This is not an overt attempt to kill OpenGL; far from it. By eliminating the need to write two different sets of drivers (ICD and DDI), Microsoft has taken a large burden off the likes of ATI, NVIDIA, 3D Labs, etc., while ensuring performance and expansibility continue.
  • MSOGL sits between OpenGL32.dll and D3D. It translates OpenGL calls into D3D calls. This is done using MANY different techniques and at several different levels to ensure the highest possible performance. When I left the project, we were well over 80% performance on average compared to the native OpenGL driver.
  • It is still possible to use an old ICD driver on Vista, but this disables D3D rendering of the desktop, which basically takes you back to XP theming of the desktop. This is because D3D cannot share the rendering context with OpenGL. Ideally, most games would run in full-screen OpenGL mode, so the intended audience for this driver is the content creation, CAD/CAM, etc. crowd (AutoCAD, Maya, 3DS Max, Pro Engineer, etc.)
  • When I left, the driver supported over 80% of OpenGL 1.4, with plans to continue implementing support for extensions most used by the target applications. We were even able to run Doom 3 in some limited modes over 6 months ago (some functions were NULLed out for testing).[/b]
    Even without reading anything additional to your post everyone who has common sense knows that this is a covered attempt to kill OpenGL. It’s MS way to compromise the OpenGL Standard by creating there weird vanilla version. It’s the same they did to the web standards, c++, java and a book of stuff more.

By not allowing the driver creaters to competed in driver quality this will be a huge downgrade for the overall quality and force the OpenGL users to rely on the crap MS makes:
80% performance with 80% of OpenGL1.4?
This must be a nightmare or a joke.

With things standing OpenGL will lose the last percentages on the windows plattform and this will prevent even more ppl to start learning and writting it.

No casual windows user will want to turn off the glass feature. So face it MS kills OpenGL. There is no way to talk that “right”.

Originally posted by rtargosz:
[b]We need to remember that many of the major content creation and CAD/CAM applications originated on platforms like SGI, HP-Apollo and Solaris, all running on OpenGL. Microsoft worked long and hard to convince the ISVs to port their applications to Windows, and part of this support is OpenGL. They cannot simply abandon OpenGL because D3D is “better”, and with the time and money invested in programs like ProE, Unigraphics, Maya, SolidWorks, etc., there’s no short-term solution for them to be ported to DirectX, nor is there any real incentive for the ISVs to do so, since it limits their portability.

IMO, Microsoft will have to continue to support OpenGL in future versions of Windows in order to maintain their partnership agreements with the ISVs. While I’m obviously not privy to the details of these agreements, I have seen first-hand the kinds of pressure AutoDesk and Unigraphics can put on Microsoft.

From a gaming perspective, however, things are completely different. I’ve seen some posts which say that lack of competition with OpenGL will slow invention in D3D. I don’t believe this is the case, since the main driver behind D3D technology has historically been game sales. John Carmack can say what he likes, but the API in DX10 (when you get your hands on it) far Outstrips OpenGL, and provides game developers (and other ISVs) with the ability to do things never before possible in graphics. Without starting a whole new “D3D vs. OpenGL” war, I think I can safely predict that OpenGL has lost the game development battle. Whether it will also lose share in the rest of the ISV world is entirely dependant on the ability of the ARB to innovate. Frankly, with competing members like ATI and NVIDIA, and Apple vs. Intel constantly bickering, I just don’t see the kinds of innovation happening in OpenGL that we’ll be seeing in D3D over the next few years.

In my opinion, OpenGL will continue to hold a place as a graphics API for some time. Applications in the embedded fields (cockpit displays, automotive, etc.) will continue to grow and mature. On the Windows platform, however, I think the writing is pretty much on the wall; D3D has won, and it’s frankly a shame. If you ask Alex St. John, he’ll tell you that D3D should never have existed save for the bickering of the WinNT and Win9x teams…imagine shooting yourself in the foot like that and getting away with it![/b]
First and formost D3D is not better then OpenGL.

D3D was pure crap until version 9, but we all know how monopolist MS forces thier crap standards on the industry.

And by the way when was the last time MS inovated anything? MS is made of stolen ideas and dreams. And so is D3D. Without OpenGL D3D wouldn’t exist.

All in all everything you have written sounds like a MS commercial to me, no offense.

Oh and even when it is true that D3D cannot share the same rendering context with OpenGL, what would prevent you to render to a texture or ram and let D3D paint that? I am quite sure that nvidia could easily make everything work out fine, but MS clearly doesn’t want them to do so. For me this whole case sounds like antitrust division material.

But with OpenGL gone… MicroSoft will be out of Resources for… lets call it “Inspiration” :wink: .

Well we shall see, maybe there still are people at MicroSoft who arent half-choked on their ties - so this whole matter gets resolved in a fair and civilized manner - for all parties.

I don’t see the problem really. Why can you not just disable the DWM when you run an OpenGL application. It’s even an automatic option. Anyone with access to the beta, right click on an executable and do properties, on the compatability tab is a tickbox to “Disable the Desktop Window Manager”, do that, and suddenly it appears there won’t be a problem anymore.

After reading everything everyone has written about this topic, there are some misconceptions I think people are having about this whole problem.

  1. By having OpenGL commands ported to D3D commands and having the OpenGL version stuck at 1.4, all the new powerful features of OpenGL 2.0, So any new software that uses say GLSL won’t work on the Aero desktop.

  2. So some people are saying just not use Aero, use fullscreen, create a simple OS for running games only, switch to Linux, Switch to Mac OS X etc… All these are workarounds that most people don’t want to deal with. When I want to work on writing my 3D software I don’t want to have switch OSes or restart my computer or even go into properties and change the desktop settings. It isn’t convenient and you shouldn’t have to do it.

  3. This is not a Microsoft vs. Linux or Mac fight and I don’t reccommend people try and turn it into that. Many people use Windows, and many people do 3D on the Microsoft platform. They don’t care about other OSes, but they do care if the newest features of their 3D app work on the latest version of Windows.

As I recall there is no mechanism in D3D for hardware vendor extensions, if this is true I don’t see how someone can explain that D3D is better, since OpenGL can be improved not only by the ARB, but also by the individual hardware vendors.

  1. So some people are saying just not use Aero, use fullscreen, create a simple OS for running games only, switch to Linux, Switch to Mac OS X etc… All these are workarounds that most people don’t want to deal with. When I want to work on writing my 3D software I don’t want to have switch OSes or restart my computer or even go into properties and change the desktop settings. It isn’t convenient and you shouldn’t have to do it.
    This has nothing to do with disabling Aero or 90% of the UI changes in Vista.

You only have to stop the DWM, which is handled automatically if you want it to. You won’t get the fancy minimize/maximize transitions and such, but that’s all.

Seeing as none of this has actually happened yet, the performance delta is entirely unknown (as is the feature set of the MSOGL driver), and no one knows how transparent this will be to the user…

It’s one thing to make sure the Vista team knows that OpenGL support is vital to you guys. I highly doubt there’s some vast conspiracy to kill OpenGL… it’s simply a technical hurdle and they are considering different ways that it can be handled.

They are doing the same thing they did with Internet Explore: anti thrust commision, can’t sell an internet browser with an OS and blah blah… So Windows became Internet Explorer: you open a directory or a web page in the same way. Windows Explorer and Internet Explorer are the same thing. Hihihi, funny, and bye bye Netscape, no more anti-thrust problems.

Now the same thing with DirectX. The Windows desktop, GUI and windowing system will be DirectX. Funny, eh? You pay for an OS and you receive Internet Explorer with DirectX. Bye bye Opengl, no more ethic problems.
Why getting a wife if Microsoft can implant tits directly on you?

There is a clarification post from an ATI engineer who was at the Siggraph BOF, posted on the OpenGL Game Dev List .

The gist:

First, there were two current paths for OpenGL on Vista mentioned. The first one is a DX wrapper, with its potential performance shortfalls and lack of extension support. The second path was a traditional ICD which when activated would force the desktop out of the compositing mode, but would allow performance and extensions.

Second, 3DLabs, ATI, and NVIDIA all pledged that they were dedicated to work with Microsoft to add the additional support necessary to make ICDs work seamlessly with the rest of the OS. There was an open request to have developers contact their Microsoft reps to express any concerns that they have over this.
He cautions not to get caught up in the FUD and instead if you feel the OpenGL limits under the Vista Aero compositor will impact your products, make whatever Microsoft contacts you have aware of your concern over the issue.

The good news is that the top 3 board manufacturers are committed to developing ICDs for OpenGL under Vista. The bad is that there is no resolution to the emulation or dropping out of Aero problem which is what all this was about to begin with.

This action from Microsoft costs the economy, again. After creating an unneeded second 3D graphics API, they again attack the bottom line of other companies. Several groups/markets are affected, you may choose one. Seeing a funny translation of DRM = Digital Restriction Management, I have recognized that this is strategy from Microsoft: They create restrictions, lessen options. See DRM, see TCPA, see .NET and software patents on the API. The Linux way is the other way round: provide options, from which you can choose. You can customize it, adapt it to your needs, differentiate it to offer a unique product. I understand why both parties fight so hard, because these principles are not compatible with each other, like fire and water.

Some suggestions to handle this issue:

ISVs, the question is which future we want to have:

  • less income and business opportunities, less products to choose from, less innovation; giving Microsoft profits like 36 %

or

  • act now: write portable code ( Book: Write Portable Code ) might be a helpful resource), do not comply to Microsoft’s orders, keep an eye on your own business goals, port your code to Linux or MacOS X instead of Direct3D; make your customers happy (those Linux and MacOS users), not one OS vendor

Really, this is not the first time they add to your expenses, and it won’t be the last time. They want to own the market 100 %, so that they have less expenses on research/innovations and can advance their prices even higher (directly and indirectly). I rather want to make profit for myself/my company, I am not at the least interested in advancing the profit of a supplier over some common sense limit.

Graphics HW vendors: Do not support Direct3D anymore, emulate it on your OpenGL layer: it provides no extension mechanism, there is no agreement on it, you cannot innovate on your own and differentiate your product. With OpenGL, application developers can target a common denominator, and at the same time offer some special render paths to exploit vendor specific features. Everyone can live with that, I think. And SDL ( Media Library: SDL ) allows for a portable setup, OpenML ( Media Library for Multimedia Devices ) eventually will cover framegrabbers, video mixing HW, etc. in the future.

I support the idea of Oliver Stieber to provide a Direct3D wrapper for OpenGL. This is because it would get wider testing (installing a game on Wine still is not easy), and field testing leads to faster development. It is a vital part of the bridge from the Windows world to the Linux/Mac world, walking on it with known and loved applications/games in the backpack.

The future will rock, this bullet is going to backfire. Let us do some more action on this “issue”. We want to have new, exciting products, innovations, which is a declared goal of the market economy. Let us make sure we get them furthermore!

I would like to hear about your actions, let us celebrate this opportunity given by Microsoft!

André Heynatz

Just a question to MS developers reading this:

Can’t you guys develop the Aeroglass acceleration over a straight Direct3D path instead? That way, you will have complete control over your programming API and what matters, and while at the same time will leave OpenGL support intact.

If you want to make the OpenGL ICD more secure, as you say, then you can have more QA and co-operation with OpenGL driver vendors, instead of limiting OpenGL support to the full desktop experience in this way.

Thank God for level-headed posters like Dramus, bhpaddock and artlab. They see the problem for what it is, rather than taking the opportunity to bash Microsoft or cast this as some conspiracy against their preferred API. Deal with the problem and stop trying to turn the problem into your own personal problems with a company or product. If you want to bash Microsoft or cite this in some ever-growing list of monopolistic practices at Micrsoft, please do it on some other forum (and I’m sure that there are plenty that are dedicated to such things). We have substantive issues to discuss.

The good news is that the top 3 board manufacturers are committed to developing ICDs for OpenGL under Vista. The bad is that there is no resolution to the emulation or dropping out of Aero problem which is what all this was about to begin with.
Of course, neither Vista nor Vista-specific ICDs are done either. Indeed, Microsoft isn’t finished with Vista, so it wouldn’t be a good idea for them to give IHVs the kind of low-level information to make their ICD’s play ball with compositing until they themselves are fully finished making it.

Best case, Microsoft, in a few months or so when Vista goes into a hard Beta cycle, they divulge various bits of info to GL IHV’s to allow them to provide ICD’s that work with compositing. Worst case, they don’t, and nVidia, ATi, and 3DLabs have to deprocess how Vista does compositing themsevles without Microsoft’s help. Either way we get what we want, and that’s whats important. The 3 companies are willing to work towards this goal, so they will be able to achieve this goal, even if they have to fool Vista into thinking that they’re using D3D.

And it isn’t dropping out of Aero; it’s just the compositing that no longer works.

Can’t you guys develop the Aeroglass acceleration over a straight Direct3D path instead?
So what happens with an OpenGL window in terms of compositing? It isn’t part of D3D, so it isn’t playing ball with how D3D works, so other windows can’t talk to its framebuffer to get the compositing to work. And therein lies the problem: in order for compositing to work all windows need to speak the same way. The IHV solution is to simply change how their ICD’s work to make them speak in that way.

to anyone who believes this ive found a way of making lots of cash u might be interested in

  • This is not an overt attempt to kill OpenGL; far from it.
    LAGOS, NIGERIA.
    ATTENTION: THE PRESIDENT/CEO
    DEAR SIR,
    CONFIDENTIAL BUSINESS PROPOSAL
    HAVING CONSULTED WITH MY COLLEAGUES AND BASED ON THE INFORMATION GATHERED FROM THE NIGERIAN CHAMBERS OF COMMERCE AND INDUSTRY, I HAVE THE PRIVILEGE TO REQUEST FOR YOUR ASSISTANCE TO TRANSFER THE SUM OF $47,500,000.00 (FORTY SEVEN MILLION, FIVE HUNDRED THOUSAND UNITED STATES DOLLARS) INTO YOUR ACCOUNTS. THE ABOVE SUM RESULTED FROM AN OVER-INVOICED CONTRACT, EXECUTED COMMISSIONED AND PAID FOR ABOUT FIVE YEARS (5) AGO BY A FOREIGN CONTRACTOR. THIS ACTION WAS HOWEVER INTENTIONAL AND SINCE THEN THE FUND HAS BEEN IN A SUSPENSE ACCOUNT AT THE CENTRAL BANK OF NIGERIA APEX BANK.

Solutions for OpenGL games:

1 - To make the game when starts run in background mode when it starts

Solutions for OpenGL games:

1 - To make the game when starts run in
background mode once Using OpenGL and
once using Direct3D, then if the fps when
running in OGL is less than that of D3D then
quit with a message “insufficient OpenGL
support.” It’s not necessarily that a
developer has to make two pathlines to run
the game, but only a mini d3d for testing a
minimal game scene.

2 - Test for some ATI/NVIDIA specific extensions
such as np triangles or NV program v3.

3 - Check if the d3d module is loaded and then
quit the game if so :smiley:

Hope this help.