I am attempting to run some Unity3D games, which require "OpenGL core profile 3.2 or later for OpenGL Core renderer" (according to the games' own output).

As far as I know, I have OpenGL 3.3. However, my glxinfo output is very, very confusing:

glxinfo | grep "OpenGL"
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
OpenGL core profile version string: 3.3 (Core Profile) Mesa 18.2.0-devel
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.1 Mesa 18.2.0-devel
OpenGL shading language version string: 1.40
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.0 Mesa 18.2.0-devel
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00
OpenGL ES profile extensions:

So, I have "Core profile version" 3.3 (greater than is required by Unity3D) but my "version" is 3.1? Why is this, and what can I do about it?

I have a Intel Core i5-3320M, and am using Mesa 18.2 with the i915 driver.


The core profile version is what version of GL you can use on your card with your drivers. This is what really matters, usually.

The OpenGL version string you can just ignore. It's the compat profile version.

However, the specific issue you are having, seems to be that your system is actually using the llvmpipe renderer, rather than the hardware acceleration for your actual GPU. The vendor string value should be something like Intel Open Source Technology Center with the renderer string something like Mesa DRI Intel(R) Ivybridge Mobile. You may need to make sure you have the intel-microcode package installed.

| improve this answer | |
  • But then why do games that require 3.2 fail on my system, when I have 3.3? – Leonora Tindall May 24 '18 at 12:30
  • But I'm not running under a VM! I have Xubuntu 18.04 installed on a T430s. – Leonora Tindall May 25 '18 at 16:34
  • OK, so the problem is that the intel driver is not actually being used here, perhaps due to lack of microcode or such. – dobey May 25 '18 at 20:02
  • OK, I installed intel-microcode but, after rebooting, my system is still using llvmpipe. – Leonora Tindall May 27 '18 at 21:36

Turns out this was due to a chain of bugs in the Ubuntu 18.04 upgrade process.

Bug 1, Bug 2, and Bug 3 caused any system with libegl to fall back to llvmpipe - software rendering.

libegl, in turn, was incorrectly installed on systems that didn't need it, due to libnvidia-gl-390 depending on it.

libnvidia-gl-390 was incorrectly required on many systems. Uninstalling it fixes this issue.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.