OpenGL 4.1 and 3.1+, What are key differences?

Garet Claborn picture Garet Claborn · Jan 27, 2011 · Viewed 17.8k times · Source

I understand that OpenGL 4 and 3 are fairly similar, especially 3.1 and 4.1. With both being essentially released together, it can be difficult to understand the rationale for OpenGL 4.0/4.1.

In previous releases of OpenGL, minor version increments upward until substantial changes accumulated into a new major version. OpenGL 3.x and 4.x introduced backwards-incompatible API changes and then OpenGL 3.2 and 3.3 are said to be specifically branches of the 3 series which are not forward compatible while 3.1 is compatible with 4.1+

What key differences does OpenGL 4.1 offer compared with OpenGL 3.1 that warrant it to be classified under a new major version?

Bonus: Do any of the differences provide performance increases in any situations over GL3 or just accessibility?

Edit: Some extra findings based on answers


OpenGL 3.3 was made to compliment OpenGL 4.0 to incorporate as much of the functionality as they could into older hardware. Choosing between OpenGL 3 and 4, 3.3 may be a better choice sometimes. 4.1 has added GL ES 2.0 compatibility however and some nice features.


One of the bigger workflow differences would be added GPU programing steps in the pipeline via the new tessellation shaders. Another would be multiple viewports to render to. I believe the new level of detail feature would change the workflow I'm using and perhaps other quite a bit, though I have not looked into this feature in depth.

Please let me know if you see any misconceptions or areas to improve.

Keynotes (apparently removed from answer while asking on meta.. For temporary reference of what the actual answer was.)

Appendix G - K For OpenGL 3.1 features through OpenGL 4.1 features

Khronos Group Release Of OpenGL 4.0 may be "easier to read" :)

  • Sampler Objects
  • Instanced Arrays and Shaders
  • texture_cube_map_array and texture_gather

  • GLSL 4.0 and dynamic LOD

  • shader_subroutine and sample_shading
  • separate_shader_objects
  • Increase required sizes for texture/renderbuffers
  • 64 bit floating point vertex attributes
  • get_program_binary
  • +2 Tesselation shaders

Answer

Shezan Baig picture Shezan Baig · Jan 27, 2011

You can get all the changes from here.

Appendices G-K go over all the changes from OpenGL 3.1 to OpenGL 4.1, including new features, what's been deprecated, what's been removed completely etc.

Also, this link may be "easier to read" :)