0

I run Ubuntu 14.04 and when I ask for the OpenGL run by my system I get this:

:~$ glxinfo | grep "version"
server glx version string: 1.4
client glx version string: 1.4
GLX version: 1.4
OpenGL core profile version string: 3.3 (Core Profile) Mesa 11.2.0
OpenGL core profile shading language version string: 3.30
OpenGL version string: 3.0 Mesa 11.2.0
OpenGL shading language version string: 1.30

So OpenGL core profile version is 3.3 and OpenGL version is 3.0?!? Does it mean I am running OpenGL 3.3 or 3.0?

I am currently using the GLU which is long deprecated (compiling and running fine). With the version of OpenGL checked above, is this normal that I am using the GLU with no apparent problem?

arennuit
  • 855
  • 1
  • 7
  • 23
  • 1
    What you see are capabilities of your driver. But selecting to run with core profile is up to the user. If you create a context with core (forward compatible profile) you won't be able to use deprecated API. – Michael IV Oct 09 '17 at 14:08
  • Does it mean that if I decide to run within a "core" context I will get OpenGL 3.3 and if I decide to run a "full" (or says core + deprecated) context, then I will get an OpenGL 3.0 version? – arennuit Oct 09 '17 at 14:37
  • Also it is written "Mesa 11.2.0" after the GL versions. Does it mean I will get no hardware acceleration? – arennuit Oct 09 '17 at 14:38
  • Hardware acceleration is available with Mesa on many GPUs. – SurvivalMachine Oct 09 '17 at 17:18

1 Answers1

2

This Wiki OpenGL Context gives you information about the types of contexts.
You see there are features "deprecated" (i.e. not recomended, but available) and "removed" (i.e. not available).

In short: There are three types of contexts:

  • Old, fixed pipeline. Version <= 2.1
  • Core. Version >= 3.2, with VAOs, VBOs and shaders. All old functions are removed.
  • Core with "compatibility" flag. You have all of other two types.

There's a forth type: "forward compatibility". It means all deprecated and removed features are not available, despite of what version you choose.

When you ask for an old context, the API implementation is free to give you any available version. You may get 4.5. But it will have the compatibility flag, so you get the old context you asked for. Or may get 2.1, or 3.0 or...

You can ask Linux the type of context you like by using GLX. But it's a lot easier if you use a Window toolkit

Mesa will try to give you hardware acceleration, using its own DRI drivers (Gallium, RadeonFeature, etc) or propietaries. If you need it, you can force the use of software rendering instead of hardware accelerated one.

Ripi2
  • 7,031
  • 1
  • 17
  • 33