I am updating an OpenGL application, switching from fixed function pipeline to modern opengl.
However, it’s not entirely clear to me what are the benefits of a core profile instead of a compatibility profile.
I am tempted to use a compatibility profile to be able to gradually transition from old opengl to modern, even being able to ship the application without the need to get rid of all the functions that are obsolete in a core profile.
However, I don’t know what are the benefits of sticking with core only. For example:
- should I expect more reliable driver behavior by using the core profile?
- from OpenGL Context wiki page:
In 3.2, OpenGL was effectively split into two profiles, core and compatibility. An implementation was only required to define core, so compatibility is not guaranteed to be available. However, on most implementations, the compatibility profile will be available.
How can I quantify that “on most implementations”?