Not logged in, Join Here! or Log In Below:  
News Articles Search    

 Home / Game Design & Programming / Promoted OpenGL extensions Account Manager
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

March 19, 2005, 07:55 AM

Hi everyone.
My question is simple:
If a graphic card supports an extension, is it guaranteed that the OpenGL core feature resulting from the promotion of that extension is available?
Is it true also the converse? That is, if a core OpenGL feature resulting from the promotion of an extension is available, does this imply that the extensions string contains the name of that promoted extension?

Sorry if the questions seems stupid, I'm just trying to be sure my code is checking for supported extensions the right way.


March 19, 2005, 08:36 AM

"If a graphic card supports an extension, is it guaranteed that the OpenGL core feature resulting from the promotion of that extension is available?"

If you want to use a "core feature" just check the OpenGL version using glGetString(GL_VERSION) and make sure the core feature you want is in this version.

I think that if the version returns something like 2.0 you can be assured that you can use ALL the core features included in this version. The promoted extensions can be found in the PDF available on There's a section explaining for each version since 1.1 which extensions were promoted.

Joakim Hårsman

March 19, 2005, 08:49 AM

The answer to both of your questions is no, but with certain caveats.
Generally extensions are implemented and stable before the core version is updated so a driver might not yet have e.g. 2.0 support but may still support the shading language extensions. And sometimes there are subtle differences in the spec of an original extension and the resulting core version which means that a vendor might support only one of them.

It's customary to only report those core features in the extension string that are accelerated in hardware but this isn't set in stone. Many vendors report ARB_vertex_program even when there is no hardware support for example.


March 20, 2005, 04:40 AM

In pratice, you're saying that core features MUST be supported, even at the cost of emulating them?


March 20, 2005, 05:07 AM

Yes. If GL_VERSION says "1.5", every core feature of 1.5 must be supported, but no guarantee is made that it is supported in hardware. If implementations don't want to take the burden of emulating core features in software, the simply let GL_VERSION say "1.4" (for example), and expose the 1.5 core features they support (again in hardware or software) along with any other non-core features by including extension strings.

Put differently, GL_VERSION makes a guarantee that every core feature is supported even if the extensions string doesn't list it. If one cannot fulfill the requirements for a specific version, one exhibits a lower version along with additional extensions.

Neither GL_VERSION nor the extensions string make a guarantee about hardware implemented support. Think MESA here.


March 20, 2005, 05:30 PM

Thanks everyone, now I think I can figure out how to check out for card compatibility issues...

This thread contains 6 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.