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

I noticed the interest in this thread is significantly decreasing as if it were ppl are not 100% sure of what is we are about.

First let me tel u about my new experience in Direct3D as opposed to my decent one in OpenGL. A thumb rule whether the I make the demo or some giant company creates it under OpenGL it runs fast like hell. Regardless of the quality since it has to do with how good the HW manufaturer skilled in programming the driver things, OpenGL in its current state the more or less the same functionality of Direct3D or even more at least using extensions which are available again at least under the two major gaming/professional solutions, NVIDIA and ATI. And of course 3D Labs.

However to make it a more perfect API that can survive specifically under Windows platforms, it must support render/draw surfaces created through the driver itself not using any DirectDraw stuff. Another thing is to have it’s own rendering contect API standarized and unified for all platforms then the first suggestion is possible. Also the gl API should be able to query the HW caps exactly the same as D3D does. Last but not least the driver should be centered, if possible, or at least give this option when possible.

Imagine thing like:

glcGetContextCaps
glcGetAdapterFormat
glcSwapBuffers

glcUseManagedOpenGL

This function switches between a pure gl driver implemented by the HW vendor and a Mac OS X managed OpenGL, layered on top of a basic gl driver, the same D3D works.

This ensures that some HW vendors at least have good support and reliable implementations. And makes things much easier until they master the art of creating good stand alone drivers.

glcCreateRenderBuffer

Lets elaborate more and start working on it.

Good luck GL ppl.

The context API wil be centered in that there are two separate modules. One implemented by the OpenGL ARB, layered on top of the other module, which is HW specific impleentation. The later is low level surface/format/contex management driver.

The core GL API is vendor specific implementation exactly as the ICD. But it should incorporate the low level context driver.

As we are working on a GL engine and eventual game as of lately. This sort of thing has our attention. Definately worth looking into. I may have 2-3 contributors(programmers) on my side. Let me talk to the others and see how much we can contibute. But it would be good if we could get more people(or course). And set up a team structure, etc. We need some serious talk about this, hopefully more people sounding off with their ideas. Brainstorming if you will. Then this table of discussion can get us to where we can start designing it much further. Although you still can begin some project managment (DOCs, charts etc.) I can post a website for the time being (after securing an official name) At some point Setting up a secure ‘source forge’ style account, and soon, hopefully, getting a few more peoples contibutions. Even those who don’t officially contibute to the team, as many are too busy for such a project. Simply posting some ideas is good.
Then at some point, maybe posts on Gamedev.net, devmasters ‘help wanted’, and other websites about the idea. When the project/plan is ready for PR and can be outlined better to those interested. That will lure in more members.
Right now things of course need to be ironed out.
But…The wheels are turning.
A plea to the others: Please reply, post your thoughts in the least.

Sounds a lot better to me than sitting around twiddling my thumbs waiting for a supernatural act by the Vorlon god Booji. I’ve been meaning to get my hands dirty. Not that they’re really clean in the first place.

:slight_smile:

Ideally, to be able to force windows vista to run GL at 100%.
DX unloads the windows desktop as to be more efficient, as I have read. (Likley because the OS is so demanding on system resources.)
But, why can’t it unload DX as well? Or be force too? Hopefully done without having to reboot afterwards. We all would like to avoid having to reboot to test your OGL game that was developed in a windows enviroment. And how many of us can go and but Linux or MAC version of all the programs used in the game creation? Not practical. :frowning:
If one writes a special ‘gamers OS’, we would be re-inventing the wheel. One one have to sell developers into a new development enviromnet that runs no other software. And since there are OS’s build around ‘Linux’, that are not nearly the resource hog of even windows 98. It would be sensable as the only second choice to build something over LINUX, which is not necessary.

I guess the task at hand should first atempt to in the least tweak or patch VISTA as so it doesn’t layer OGL over DX. Sadly, a tall order.
Else, we are asking others to switch to a new os like linux. If we develope a windows game we need to be able to play it on windows, including VISTA.

The task at hand is to still have it both ways.
Full OGL support and Windows VISTA.
Or be force to develop under linux or OSX.

In thinking, what can one do now anyways?
We will eventaully all be forced to have VISTA as so many apps and games now will run on only XP.
Might be a matter of a trick like 98LITE did to unload IE browser. (Or better)

Rather than go to the Command prompt and then have to reboot windows all over again. Something that can run from the Desktop.

recap:

Follow the need to develope games in windows VISTA and also be able to test or play a GL game as painless as possible with GL running at 100%.
Do whatever it (legally) takes to accomplish.
We may have to wait until the final version is out, Install and start working on a program that does what we seek.

I am getting redundant here, sorry…
(brainstorming :wink: )

May I remind the game developers in this thread that there is not, and has never been, any suggestion that Vista won’t support a full ICD in full screen mode? This is a non-issue for games, other than those which want to run windowed.

The only issue here is potential interaction between OpenGL and the Aero Glass desktop compositor. This is a significant issue for a lot of people, but it won’t affect your favourite games, unless you like to game in a window (and even then, you’ll just have the desktop downgrade around you - it won’t stop working). I’m sure driver changes will be needed for the Longhorn device driver model, but hopefully not ones which will impact on the user.

Not that I’m uninterested in the “gaming OS” discussions - I just wanted to ensure that people knew they were going off-topic.


Fluppeteer

I would just like to reply to some of the statements I’ve heard & give some observations. The quotes I’m giving are from A Guided Tour of Windows Presentation Foundation from the MSDN Library and is worth reading IMOP because it give some good insight on why Microsoft is doing what it is doing.

The first thing I hear people say is "Why should we care if OpenGL works in Aeroglass if programs will still work without all the “fancy effects”. Without all the “fancy effects” means its using GDI Microsoft old 2D renderer. Hears a quote from Microsoft about its renderer in Vista:
“All rendering in Windows Presentation Foundation takes place through Direct3D (indeed the Windows Vista hardware logo program will require a DirectX 9-level GPU). By moving more graphics processing to the GPU, we release the CPU for other work, increasing performance while simultaneously improving graphics quality. These benefits aren’t limited to the 3D world, however—2D graphics also take advantage of the same services; GDI is not used within Windows Presentation Foundation except for integration with legacy elements. For machines with Windows Vista, the new display driver model offers superior output with higher performance characteristics for media-intensive applications.”

In other works GDI is on the way out, and is only being kept for compatability.

The other interesting thing in this quote is that all graphics, including the windowing system is done though DirectX, this would mean in theory that if OpenGL drivers were provided a truly cross platform GUI would be able to be made that would be native code for windows. That combined with .NET would make an almost completely crossplatform application API that would run extremely fast and well on Windows Vista. I realy think this is the reason why Microsoft made this decision.

Hi, well I am just about to start programming my 3D Cad system using OpenGL and C#. I am new to OpenGL but it seem far more suited to Cad than DirectX. So I am now left confused as to what to do, use OpenGL or DirectX??

An open ended question I know, but I don’t know enough yet to make an informed decision, any comment appreciated.

Talyrond

I’ll go with OpenGL, especially because you can port it for Mac and Linux.

Some say that this is not big market segment according to google stats (I thought that initially) , but what people do not know/see is that google stats say ONLY what OS was used to access google… now, thing is that most of that stats are those crappy PCs in: banks, public offices, hospitals etc… a lot of places where PC is used for document printing, internet access and excel documents. That’s why stats are not correct.

Actual number of people that buy software for serious work or home gaming is very different, since all those “office” machines don’t come into that statistic. I would focus especially on Mac, since it has incredible expansion in last years, and it is not so heavily packed with available software (also you exactly know what to expect in terms of hardware/speed).

Linux and Mac have great potential for earning bucks. MS Windows is the leader, but then the real question was OpenGL or DirectX… if you want to cut other OS from your current/future plan than flip the coin… otherwise use OpenGL.

We have developed an OpenGL based application for several years. One thing particularly bothers me in Windows platform is that OpenGL cannot get accelerated without allocating an actual window on screen, that means:

  1. You cannot use the acceleration in rendering scene off screen;
  2. You cannot render a scene larger than the curently display setting;
  3. You cannot integrate OpenGL graphics with other Windows graphic output unless you use software emulation.

I do not understand why OpenGL in Windows cannot share the same drawing context. There is no such problem in Mac platform in which OpenGL drawing context shares the same drawing context with other Mac drawing utilities. If it is due to some legacy reason in old Windows OS, I understand. But Vista is new and the graphic foundation is developed from scratch.

I was hoping that the new Windows will solve this problem. But from what I read here, my hope is probably in vain. This problem is the same in nature as the conflict of OpenGL with Aeroglass. This is not an unresolvable problem - as long as Microsoft provides IHVs low-level interface.

This is not just an eye candy thing. It will open a door to many more possibilities for OpenGL-based applications.

Originally posted by talyrond:
[b]Hi, well I am just about to start programming my 3D Cad system using OpenGL and C#. I am new to OpenGL but it seem far more suited to Cad than DirectX. So I am now left confused as to what to do, use OpenGL or DirectX??

An open ended question I know, but I don’t know enough yet to make an informed decision, any comment appreciated.[/b]
The company I’m with has done some great things with OpenGL. Their most recent 3D visualization of Earth from space and stuff in orbit looks real good.

It’s been discussed somewhat earlier in this thread that OpenGL is indeed more suited for CAD applications. Also, OpenGL applications can be run on more systems than others, which can increase the user base. As a Linux user, that point is very important to me, and to others who use similar systems.

Lets be practical. 99% of games are Direct3D and 1% supports OpenGL, and a couple of games outthere use only OpenGL.

I’m wondering why some games started with OpenGL as the only reliable and stable API of choice and then moved to only D3D or includd D3D to the “of choice?”

Why some video boards factories are relectant to create their own specific APIs. This will not hurt at all. At least it will make it easier to “wrap” OGL around their “Glide’s” instead of letting some companies wrap it around D3D.

D3D is good. But it’s never been stable because of its rapid change nature. This proves one thing that it’s mal-designed that it needs to be re-designed to reflect the new changes in HW caps. OGL is not bad at all by providing the extension mechanism which can be easily supported by many HW vendors as soon as a feature is out, and very easily integrated into the core API, even if we require additional core functionality, it will never break the rules.

OGL, and as I said before, needs one thing, a standard context-specific API, that makes it as low as engraved transistors on the silicon of the tiny chips of the VGA.

ARB do it and start a draf/standard of the glc (GL context 1.0)

Lets be serious abou it and lets see how it will benefit many many applications out there. Let the HW vendors giants make express the silicon functionality instead of the “office” appliations programmers.

@glFreak:
Can you please keep to the subject - That is “Call to Action: Ensure that OpenGL remains a first class API under Windows Vista”… I don’t care about context stuff since I put it once in a framework class and it works fine. Also there are many ways and examples to setup everything you need for OpenGL in Windows… if you don’t wish to write (copy/paste) Windows stuff, use freeGlut or whatever. I don’t see the issue there.

However this topic is about VISTA and OPENGL, not DirectX vs OpenGL or what is better. If you like to discuss that, you can open a new post. Personally I am visiting this topic to find news, not to read someone opinion about GL or DirectX, or personal attitude about percent of games and engines that use GL… if you think to know all that and wish to share your wisdom, post a new topic or write a blog.

Microsoft could probably put a spin to their favor on such a case though. Most people don’t know much about operating systems. The public at large may see that as an affront to their only access to PCs, if the company chose to market it in the media as such.

I don’t think we’re going to have much success in the courts, at least not now, and not in the US. I believe there have been some successes in Europe though, so maybe something can happen there. There was a setback in France though, as it appears there may be a law passed that could ban all free software there. Microsoft’s partially behind that, as is Sony.

Still, Sony is a big competitor, so it may be better (though not perfect) to support them. (They are using OpenGL afterall) OpenGL does need to remain competitive though, and I think some of the suggestions here might help. If it becomes attractive enough, more developers may put more pressure to have OpenGL work with Vista.

This is indeed corruption, and those few who do care are paying the price for the many’s ignorance.

Thank goodness Sony are supporting OpenGL :wink:
Not just Sony… go to the OpenGL ES home page and look for OpenGL ES Adopters

Btw, next year, Apple will release new Mac with Intel processor… for developers it means that every OpenGL/OpenAL game will almost work without porting. It will be so easy to deliver the same PC product for Mac, maximum one month of work. Applications will follow, especially one that use cross platform GUI solutions.

All that events tend to shift trend of making only Windows games/apps, in only windows available 3D API… so MS had to do something dirty.

hehe…

to whom it may concern,

just for the fun of it, and for your edification, ask yourselves a simple question: what would i do if i had my own operating system, and i wanted to tightly integrate graphics in my operating system in such a way as to make development a breeze, and the end-user experience a dream? would i, out of the goodness of my heart, see fit to include some external api(s) in this scheme, possibly incurring all manner of design and security implications, if i didn’t have to? in other words, why would i want to design my system around the need–need–for another graphics api, if it weren’t strictly necessary or even desirable? would i spend the time and money and headache, design my system so that its inner workings are exposed, all so that i can provide a path for other apis that i don’t need, or want?

you delight in the fact that opengl is cross platform, implying that you intend to target the very operating system that in the same sentence you condemn; the very operating system that has achieved its height of success in no small part through its good design philosophy, rapid evolution and ease of use (and shrewed business practices). if linux had the market share that microsoft enjoys, you wouldn’t be having this discussion in the first place. indeed, it is unlikely that you would be entertaining the notion of a directx implementation for linux, in such an event of role reversals, just for the sake of what someone’s notion of the ideal api is. hehe…

personally, if it were my os, i’d be rid of opengl altogether; that is, if it didn’t mean loosing a an application base and alienating a considerable if not cantankerous developer base. the latter impetus seems a lost cause, imho, though i realise that those posting here represent a rather small and insignificant portion of the opengl developer population, with the exception of a notable few (you know who you are).

i feel no particular allegiance whatsoever to one api or another. to me, an api is just a way to communicate with hardware–a necessary evil, if you will. directx is great under windows because it evolves quickly and is wired into the os, which in turn makes certain things nicer, especially when you look at .net and d3d10. sure, like all apis, it has its shortcomings, but i don’t mind pointing out that the list is getting shorter all the time.

anyway, as korval so eloquently stated, and i’ll reiterate for your convenience,
i would find all this microsoft bashing rather embarrassing, if i were you, from the perspective of a development community, and as a matter of course. you’re shooting yourselves, and indeed the community, in the foot with this sort of ridiculous rhetoric. you guys (you know who you are) sound like a bunch of end-users, rather than developers. heck, you sound like a bunch a hay seeds, really. hows about a little imagination on your part? hows about showing a little mental girth, else you are liable to get microsoft’s unlubricated “10 foot experience”, from behind.

what’s the harm in learning a new api? i just don’t get what the big stink is about. sounds like a lot of lazy developers to me, for the most part.

but do go on. it is entertaining, if not clinically absurd.

happy holidays,
bonehead

I think I have a solution! Why not implementing OpenGL 2.0 instead of 1.4 under Vista but still layered on top of the geek API???

What do you think???

Lets change our attitudes and intentions in this thread to suporting the current version of OpenGL. This way the problem is solved. And since D3D is superior in performance under Windows, as experts said, then there will be no performance problem wrapping things. :smiley:

what’s the harm in learning a new api? i just don’t get what the big stink is about. sounds like a lot of lazy developers to me, for the most part.
If I wanted to code only for single console called Windows Vista PC, I would not argue… so then, MS should not implement OpenGL 10 years ago in the first place. I mean, we should draw with windows GDI… So it implies two things:

  1. MS does what it wants, without any regard /respect for developers that actually work on their system, and some of them made PC very popular as gaming platform (ID Software for example), others as professional CAD, 3D modeling platform. The real question is what to expect from them in future?

  2. There is no FREEDOM of choice. Really, MS doesn’t need to “invest time and money” - it just needs to provide mechanism to draw to window canvas/texture without, or directly trough, Direct3D (it can provide, for instance, texture or memory image place in specified MS format, which then will be drawn by Vista composer, without limiting what people use to draw on it). Instead, MS develops/invests money in out of date “version” of OpenGL to make things look nice…


Just wondering… say, tomorrow some suit at MS decides that free DirectX is very stupid, not in best interest of MS corporation - after all MS pays people to develop it. And sets the price to 100 000$ for SDK. Well what can you do, no other solution… also in addition “no uncertified D3D driver" can be installed, “for your sake, and sake of security” - like they invented the first driver and it was used never before, and every IHV need to pay - let’s say 1 000 000$ for driver certification (stamp policy - like in many dictatorships before)…

That’s why we need other APIs, that’s why monopolies are bad thing. That’s why healthy competition is necessary for proper advancing in any segment, including DirectX future. That’s why this MS move really stinks. Your freedom of choice will not go away all the sudden, it will go step by step… but hey, enjoy while it lasts.

And… the only thing that is not quite clear to me is IHV position. Are they blind? They need emails/letters to decide whether or not to take action? I think that they are the ones shooting them self in the foot if this pass. And yes I would like to know their official position regarding the subject OpenGL - Vista. IHVs you could indulge us and post on OpenGL.org your position?!

The last thing I want to do is develop Direct3D, cause it is just strengthening a massive monopoly.
there’s no logic in this. by developing applications that target windows, you’re supporting windows, regardless of the api you use. if you want to hurt microsoft, stop developing for them, and stop buying their products. of course, you’re hurting people by doing this, but who cares? they’re not real people; they’re just microsoft employees…

nobody cares what api you use, navgen. and the microsoft monopoly issue, real or imagined, is not at issue here.

If I wanted to code only for single console called Windows Vista PC, I would not argue… so then, MS should not implement OpenGL 10 years ago in the first place. I mean, we should draw with windows GDI… So it implies two things:
frankly, your logic escapes me. if there’s a crescendo in your reasoning with this statement, i missed it.

  1. There is no FREEDOM of choice.
    you do have a choice, actiongl: don’t develop for windows. the notion that it’s opengl’s god given right to exist on all platforms equally is ridiculous on the face of it. i understand, as a developer, that its aesthetically appealing and convenient to have a single api for all occasions, i just don’t see this as a logical guide and end for all endeavors, particularly ones the hold the end-user in the highest regard, not the developer. i know that may come as a blow to you, but i’m sure that you would have to agree, at least on a fiscal basis.

anyway, this issue isn’t without precedent. for instance, if you develop applications under windows, chances are you use the win32 sdk, or one of its incarnations. you don’t need a choice, though you do actually have some, each with their respective strengths and weaknesses, and each an api that sits atop the win32 api. most use the win32 api directly, because it’s there, it works, and it allows you to access the entirety of the windows gamut while offering the best performance.

now, as graphics becomes more of an integral part of the operating system experience, it’s going to be increasingly difficult to abstract the graphics provider in such a way that assures performance, security, and stability, and all in a way that microsoft can control. vista rises and falls on, among other things, the performance and consistency of the graphics. they can guarantee the desired behavior by enforcing a degree of compliance at the hardware level. but at an abstracted software level, where things get out of their hands, there’s the potential for some crumby opengl implementation to make windows look bad, as an os. with the compositor disabled, microsoft has effectively given themselves a disclaimer: “if things get screwy, it’s not our fault”, or “we’re sorry for the inconvenience, but we have to change security policies and graphics capabilities because we’re switching over to an api and driver that we have insufficient control over”. hey, if i had some external api in my system that was responsible for the intended look and feel of my os, you can bet your bottom dollar i’d be more than a little concerned, probably reluctant in the extreme to allow this to happen. wouldn’t you?

as has already been said, all this can be made to work. this is just a reminder that microsoft is under no spiritual, ethical, or moral obligation to do this–a reminder that seemed strangely necessary.

Just wondering… say, tomorrow some suit at MS decides that free DirectX is very stupid, not in best interest of MS corporation - after all MS pays people to develop it. And sets the price to 100 000$ for SDK.
microsoft already charges us for the use of d3d… it’s called “windows”. your insinuation is amusing, but preposterous!

That’s why we need other APIs, that’s why monopolies are bad thing. That’s why healthy competition is necessary for proper advancing in any segment, including DirectX future. That’s why this MS move really stinks. Your freedom of choice will not go away all the sudden, it will go step by step… but hey, enjoy while it lasts.
you’re clearly not taking the long view on this one. want to give microsoft a run for the money? then create an os that competes with it! quibbling over a graphics api ain’t going to get you there, buddy. try as you might. create an os better than windows, better to the people that matter… the people that buy operating systems. but that’s another matter entirely. and frankly, i don’t think it’s a very interesting one, least not from where i sit. honestly, the myopic view that the world begins and ends with graphics apis is a bloated self-centered delusion, and has no basis in reality.

And… the only thing that is not quite clear to me is IHV position. Are they blind? They need emails/letters to decide whether or not to take action? I think that they are the ones shooting them self in the foot if this pass. And yes I would like to know their official position regarding the subject OpenGL - Vista. IHVs you could indulge us and post on OpenGL.org your position?!
by all means, send letters, emails, flowers and candy. a friendlier and more cordial attitude will get you further than dispirited tirades and melancholy.

the debate here could/should be a technical one, but who has enough information to say something intelligent in this area? those that could inject some useful inside information are probably not at liberty to discuss it; those that can discuss it probably keep on going after reading all the inept microsoft bashing and otherwise inert commentary. some of us might be interested in hearing some pertinent information, but where’s the motivation in contributing to this thread now? the few good folks that have attempted to contribute useful information have been met with either outright ignorance, or have been browbeaten and stonewalled by on-high wannabees, who view this as nothing more than an exercise in creative writing, or an opportunity to express some deep seeded frustration with life, in a kind of sad, half-assed death match.

sorry.

btw, i want to port some stuff to linux. and guess what? i have to learn opengl! am i pleased? well, i’ve actually learned a thing or two and i think i’m the wiser for it. so yes, i like it!

i wish you the very best the season has to offer,
bonehead

Firs of all, most of your reply doesn’t have necessary logic behind it to make it even worth answering. But that is only my opinion and you have right to write whatever you want. To clarify some things for you:

What I find annoying about MS is that it created windows with many qualities - such as, that you can use OpenGL, have all those professional GL apps, good games… allowing that in Windows OS, lot of companies use OpenGL and provide products for Windows. It was developer friendly environment. Now, somebody at MS has decided that MS would earn much more money if GL was dead. But hey, those people won’t stop coding it, even if by default there is no hardware support for it… that is, you have no acceleration until you install ICD from IHV.

Hm, now we have to do something even more “constructive”, even though hardware companies and developers still support it. Let’s forget all those companies and developers and FORCE THEM to program in D3D -> that is if they wish to continue to use Windows (Vista). That’s it, first we create big pool of developers for Windows, and then -> we force them to adopt our technology, by cutting OS system functions and usability. That’s great, 5 stars… maybe this kind of behavior passes in US, but certainly not in Europe .

microsoft already charges us for the use of d3d… it’s called “windows”. your insinuation is amusing, but preposterous!
Windows OS gives you right TO USE software that use DirectX technology. It’s a completely different situation when you wish to DEVELOP software. These things are very different. DirectX is free for developers (right now…)

btw, i want to port some stuff to linux. and guess what? i have to learn opengl! am i pleased? well, i’ve actually learned a thing or two and i think i’m the wiser for it. so yes, i like it!

Here is the main issue… which you fail to see. Nobody prevents MS to develop DirectX version for Linux -> so, you are not learning OpenGL because of Linux vision of perfect OS, you are learning it because MS didn’t develop DirectX version for Linux. If MS want to do so -> IT CAN. If OpenGL developer wants his windowed application to seamlessly integrate with Vista -> IT CAN’T… if IHV want to make proper driver, it can’t! Why, because microsoft prevented it. These are two different things:

  1. Having OS capability to do something, and not using it.
  2. Having no OS capability, even if you wish to do so, because OS vendor decided after 10+ years to change its policy toward graphic standards.

Happy holidays :cool: