Jump to content

  • Log In with Google      Sign In   
  • Create Account





GL3.2 - Now with more broken dreams.

Posted by phantom, 03 August 2009 · 136 views

(I'd like to thank Zao for todays tag line).

So, as you might have noticed I don't use OpenGL any more, something about an outdated API and the ARB not being able to find its own arse with both hands and a map if it was given 3 tries.... however, I am apprently still subscribed to the mail stuff on the GL website, from a more optimistic time when LP was still a reality, which I had forgotten about.

So, today I got an email saying that GL3.2 had been released and because I'm always intrested in new levels of fail I decided to have a look at what has been added.

- GLSL 1.5 : no surprise here
- BGRA vertex component ordering : erm, ok
- shader fragment coordinate convention control : pass.
- Provoking Vertex control : at a guess, used to control which stream controls vertex processing.
- Seamless cube map filtering
- Fragment depth clamping : took them long enough, I'm sure NV has had this since the dawn of time
- multisampled textures and texture samples for specific sample locations
- geometry shaders
- sync/fence objects : been asking for this for some time now

So, a minor set of updates really but with some intresting effects.

First however one I didn't mention; core and compatibility profiles which superceed the compatibility extension.
Yes, that's right.. they have changed the deprecation system again which adds yet another lump in 'what combination of what?' you have to deal with.

However, it gets even more fun.

You see, by my estimate, this release of OpenGL ends support for DX9 hardware, or at least easy support.

You see, the addition of two extensions plants them firmly in DX10 land;
- multisampled textures and texture samples for specific sample locations
- geometry shaders

The former I'm 99% certain you can't do on D3D9 hardware, the latter I'm certain of it. So in order to have a conforming implimentation you either need to do the stuff in software (good luck figuring that out from your app btw) OR you have to drop anything which can't handle it in hardware.

This is made all the more amusing by two further bits of information;
- While NV have a 3.2 driver out AMD, afaik, still can't claim 3.1 support
- AMD also lack, and have lacked for some time, the extension support for geometry shaders.

Now, I'll admit that I'm one offical AMD driver revision behind (although I did try a pre-release and it was 3.0 still), so the July release might have had 3.1 support and might have had geometry shader support.

What I find more likely is that there is a gap opening up in support levels, with AMD now two revisions behind and without the man power to catch up and NV scampering off into the distance. AMD might well prove me wrong, this driver release coming might be all singing and dancing.. but I doubt it. They can't even keep their dev enviroment and tools up to date, never mind work on GL extensions for what is, in the PC space, a fringe area of intrest.

So, practical upshot?
Right now, if you want to develop a GL based game you have to limit yourself to GL3.0.
If you want to support DX9 hardware, of which there is a lot in the wild still, you need to stay with GL3.1 at least (unless there is some sane way to detect when you are about to get throw into software with your geo-shaders).
edit: I stand corrected, apprently you need D3D10 hardware to create a GL3.0 context. Well, that does make things a little easier at least. Forget GL3.x if you want a greater than D3D10 market.

In short; nothing has change for the good in the GL world, if anything it's become worse.

I think I'll upgrade my earlier statement to 'couldn't find their own arse with a map, 3 tries and a GPS reciever and coordinates for their arse'.




>> If you want to support DX9 hardware, of which there is a lot in the wild still, you need to stay with GL3.1 at least

No, this is not right. OpenGL 3.x context can be created only on DX10 level hardware (for Nvidia and AMD). If you want to use GL on DX9 hardware, you are limited to 2.1 context.
I don't see how is it bad that OpenGL 3.x requires DX10-class hardware. After all, you can't implement stuff like geometry shaders out of nowhere (well, you could in software, but that's a suicide). What's important is that thanks to OpenGL 3.x, "nextgen" features aren't tied to the operating system and platform. I think you're too harsh towards OpenGL but that's your opinion :)
And ATI supports 3.1 context.
As I pointed out on the other thread, OpenGL still works on XP class systems, which do not support DX10. So, assessing whether GL3 adoption provides a larger or smaller user base than DX9 or DX10, will require some looking at the adoption rate of Vista vs XP among your users.
Quote:
Original post by rbarris
As I pointed out on the other thread, OpenGL still works on XP class systems, which do not support DX10. So, assessing whether GL3 adoption provides a larger or smaller user base than DX9 or DX10, will require some looking at the adoption rate of Vista vs XP among your users.


True, although with the release of Windows 7 soon I have a feeling that a lot of XP users will upgrade and thus have access to DirectX 10 and 11 (if it does actually get released with Windows 7 as Microsoft are saying).

Although OpenGL does have the huge advantage of actually being supported on Macs and Linux machines.
The July Catalyst release by AMD adds support for 3.1 contexts. Geometry shaders are still MIA, but at least they'll be forced to implement them now.

Funny tidbit: there was a recent comment on opengl.org by one Nvidia guy who implied that geometry shaders made it to core because AMD wouldn't implement them otherwise. Take it with a grain of salt, but the comment exists somewhere in the "suggestions for the next OpenGL release" forum. :D

Recent Entries

Recent Comments

PARTNERS