View Full Version : Compatibility Profile?

10-12-2017, 01:21 PM
Simple question, what is the meaning of Compatibility Profile Context ? It's something you might see when calling glGetString(GL_VERSION) for AMD cards. Compatibility to what? forward? backward?

If I happen to be running an older OpenGL program that uses immediate mode functions only, should I be worried that it might crash?

10-12-2017, 01:36 PM
OpenGL 3.0 deprecated many features, e.g. the fixed-function pipeline, glBegin/glEnd, etc. 3.1 removed these features altogether. 3.2 introduced two distinct profiles: the core profile (which doesn't include the deprecated features) and the compatibility profile (which includes them).

Code written for OpenGL 1.x and 2.x should work fine with a 3.2+ compatibility profile. It won't work with a 3.2+ core profile. The online reference pages for OpenGL 4 (https://www.khronos.org/registry/OpenGL-Refpages/gl4/) only describe the core profile. If a function isn't listed there, it isn't available in the core profile.

Note that the compatibility profile isn't available on all platforms. In particular MacOS doesn't have it; you have a choice between OpenGL 2.1 and OpenGL 3/4 core profile. So if you want to use 3+ features in code which should run on a Mac, you need to use the core profile.

None of this should matter if you're running legacy (OpenGL 1/2) code.

10-12-2017, 01:58 PM
Thanks for the info. Just wondering if these new drivers were ripping out old functions and causing my program to crash. Must be something else.

10-12-2017, 10:32 PM
If your program is crashing you're better off using a proper debugger and finding out why.

10-13-2017, 02:14 PM
If your program is crashing you're better off using a proper debugger and finding out why.

I wouldn't be asking for info if that was possible. AMD Drivers have always been flaky, and I don't trust them enough to maintain old functions for the future.