I have been doing some testing with the new Betas on Longhorn and this is somthing I noticed.
A flat install gives you eye candy but once you install the latest drivers, you get proper OpenGL but no eye candy. (I had assumed that this was because the drivers were not WHQL for longhorn or whatever - but this discussion makes me think otherwise)
What can we do? Well for gamers and professionals it probably won’t affect them as they always install the latest drivers and plain OpenGL 1.4 won’t cut it even for current games/apps (ie no shaders)
I think they are trying to cut it both ways, gamers and professionals don’t care about UI eye candy and will happly install the latest drivers to get OpenGL support for Max/Maya/Doom3/Prey etc. Joe average user never install drivers and likes eye candy. Net result is that developers see that most computers have inadequate OpenGL support and will stop developing for it.
Again what can we do?
Well Microsoft is not part of the ARB anymore correct?
Microsoft will probably have to get their “wrapper” certified as OpenGL compliant. Correct?
I suggest the ARB (or SGI or whoever) test the stuffing out of this “wrapper” and don’t approve it unless it conforms 100%.
(From what I have seen in the beta, it is quite a way from conformance)
Then MS will have to waste engineering effort to try and get it to conform.(Is it even possible? there is a lot of stuff in OpenGL that I can’t easily see translating, two sided lighting, fixed function lighting is different (specular) )
Hopefully if they cannot conform by longhorn shipping date, they will have to cave-in and ship the OpenGL drivers provided by the hardware providers.
Another plan of attack would be if some “killer” everyday-user application starts using OpenGL and has a check at startup for this “wrapper” and directs users to download correct OpenGL drivers. (not forcing them, just suggesting that for optimal experience update from <link to vendor site>)
Suggestions could be OpenOffice.org (as it already uses OpenGL and it seems to ship on a lot of no-name brand PCs) or perhaps even firefox could have some “fancy OpenGL” usage and do this.
It also does not have to be open source apps that do this. If you ship an app that even uses OpenGL in the slighest, warn and bug the user on first run.
Perhaps the ARB could contribute some code so all these warning messages are displayed in a consistent manner. A interface provided in a static lib like:
GLuint WINCheckOpenGLSupport();
Which would open a dialog if the wrapper was detected and then (with users permission) attempt to contact a central repository (OpenGL.org/SGI?) with the video card vendor and device ID. (assuming Internet support - should be common by the time longhorn ships) This repository would then reply with the website from which the latest drivers could be downloaded from. The dialog would then open the web browser pointing at this web site. (vendors could be responsible for updating their download links)
Return codes from this could be:
0 - driver is OK. Continue to run.
1 - driver is wrapper - user elected to not update. Continue to run.
2 - driver is wrapper - user elected to update. (so exit app now)
3 - driver is wrapper - no net connection/ unable to contact website/ unknown device.
This interface is probably a bit high level but could broken into sub-sections (ie CheckForWrapper, ContactRepository etc) to let the the app developer open their own dialogs.
This lib could be updated periodicly with just the vendor ID’s to websites (ie www.nvidia.com www.ati.com)) so if the repository went down, you could still direct them to the main site. (vendor ID’s and sites should almost never change)
(This is off topic from the MS thing - but would be handy)
This interface could even be extened to provide a means of checking driver support. For example, you could pass a data structure with the date you did all your testing. This date would then be compared agains the timestamp of the currently installed driver (once the wrapper checks pass) and prompt the user if their drivers are too old. Then proceed to do the usual website lookup.
gee, what a rant…