Specifying SDL_GL_CONTEXT_PROFILE_COMPATIBILITY forces OpenGL 2.1 on Mac

I am getting an OpenGL 2.1 context in spite of my request for 3.2 unless I specify CORE. During my transition to non-deprecated functions, it would be nice to have things up and running as they were in my immediate mode code.

Core scenario:

SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 2 );

OpenGL version string: 3.2 NVIDIA-8.12.47 310.40.00.05f01
Shading language version: 1.50
OpenGL renderer: NVIDIA GeForce GT 650M OpenGL Engine

Compatibility scenario:

SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 2 );

OpenGL version string: 2.1 NVIDIA-8.12.47 310.40.00.05f01 <— why is this OpenGL 2.1?
Shading language version: 1.20
OpenGL renderer: NVIDIA GeForce GT 650M OpenGL Engine

This is Mac OS 10.8.4.

Michael Labb?

Mac OS X does not implement OpenGL 3.x+ compatibility profile, only core 3.2 (3.3 or 4.1 in 10.9). The same goes for Mesa drivers in Linux, I believe.

https://developer.apple.com/graphicsimaging/opengl/capabilities/index.html

https://developer.apple.com/library/mac/documentation/graphicsimaging/conceptual/opengl-macprogguide/opengl_pixelformats/opengl_pixelformats.htmlOn 2013-08-29, at 4:42 PM, Michael Labb? wrote:

I am getting an OpenGL 2.1 context in spite of my request for 3.2 unless I specify CORE. During my transition to non-deprecated functions, it would be nice to have things up and running as they were in my immediate mode code.

Core scenario:

SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 2 );

OpenGL version string: 3.2 NVIDIA-8.12.47 310.40.00.05f01
Shading language version: 1.50
OpenGL renderer: NVIDIA GeForce GT 650M OpenGL Engine

Compatibility scenario:

SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 2 );

OpenGL version string: 2.1 NVIDIA-8.12.47 310.40.00.05f01 <— why is this OpenGL 2.1?
Shading language version: 1.20
OpenGL renderer: NVIDIA GeForce GT 650M OpenGL Engine

This is Mac OS 10.8.4.

Michael Labb?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Mac OS X does not implement OpenGL 3.x+ compatibility profile, only core 3.2 (3.3 or 4.1 in 10.9). The same goes for Mesa drivers in Linux, I believe.

https://developer.apple.com/graphicsimaging/opengl/capabilities/index.html

https://developer.apple.com/library/mac/documentation/graphicsimaging/conceptual/opengl-macprogguide/opengl_pixelformats/opengl_pixelformats.htmlOn 2013-08-29, at 4:42 PM, Michael Labb? wrote:

I am getting an OpenGL 2.1 context in spite of my request for 3.2 unless I specify CORE. During my transition to non-deprecated functions, it would be nice to have things up and running as they were in my immediate mode code.

Core scenario:

SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 2 );

OpenGL version string: 3.2 NVIDIA-8.12.47 310.40.00.05f01
Shading language version: 1.50
OpenGL renderer: NVIDIA GeForce GT 650M OpenGL Engine

Compatibility scenario:

SDL_GL_SetAttribute( SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MAJOR_VERSION, 3 );
SDL_GL_SetAttribute( SDL_GL_CONTEXT_MINOR_VERSION, 2 );

OpenGL version string: 2.1 NVIDIA-8.12.47 310.40.00.05f01 <— why is this OpenGL 2.1?
Shading language version: 1.20
OpenGL renderer: NVIDIA GeForce GT 650M OpenGL Engine

This is Mac OS 10.8.4.

Michael Labb?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org