Because you (or the environment you’re running in) is forcing your application to use indirect rendering, which tends to limit the supported OpenGL version to 1.4. See the first couple lines in your output above.
Not only is indirect rendering being forced (LIBGL_ALWAYS_INDIRECT), but your $DISPLAY setting (10.80.2.22:1) should force that as well, as it is requesting potentially remote display of the content on another machine running an X server.
- Indirect rendering means the app (client) and the graphics driver (on the server) communicate GL via a serialized packet protocol suitable for sending over the network.
- “Direct” rendering provides for a more direct path for GL commands to be communicated from your app to the graphics driver.
To get full OpenGL support, you’ll want to use “direct” rendering. Direct rendering supports the latest OpenGL versions, while Indirect rendering fell out of vogue years ago and does not.
What exactly is your setup? VcXsrv, is apparently an X Server running on Windows, yet you said you’re displaying on a Linux server. Which machine is your program physically running on and which machine is your program trying to display on? My guess:
- Box A: Windows running VcXsrv and your application
- Box B: Linux box (10.80.2.22) which you are trying to display your application’s output on
???