Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm trying to learn OpenGL and most tutorials on the internet only offer guidelines for OpenGL 3.0 and higher. So I looked for my OpenGL version and

glxinfo | grep OpenGL

yields this:

OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile 
OpenGL version string: 2.1 Mesa 10.0.4
OpenGL shading language version string: 1.20

So I went to the offical site for these drivers: https://01.org/linuxgraphics/

I installed the latest version but it still says the same. I know my hardware is capable of doing some DirectX11 rendering so why wouldn't it support OpenGL3.0?

Oh, I forgot: I'm using Fedora 20 64bit

share|improve this question
I'm getting OpenGL version string: 3.0 Mesa 10.1.5 on HD 4000 and mesa-dri-drivers-10.1.5-1.20140607.fc20.x86_64. – Cristian Ciupitu Aug 12 '14 at 16:11

The reason for this is that the Ironlake graphics architecture is not ivy bridge or sandy bridge It's Clarkdale/Arrendale gen technology which, while the hardware strictly speaking supports the extensions, does not have these features implemented in the relevant graphics drivers.

You could take a stab at adding them yourself if you have experience with driver programming.


The relevant section, in case the link goes down:

"While Ironlake (Clarkdale/Arrandale) -- the generation of Intel hardware prior to Sandy Bridge -- was designed during the OpenGL 2.1 days, much of the OpenGL 3.0 / GL Shading Language 1.30 functionality can be implemented for this hardware. As Intel Linux customers were quick to discuss when sharing this morning there's now OpenGL ES 3.0 for Sandy Bridge (the embedded/mobile GL variant), driver developers quickly lose interest in older hardware.

One Phoronix reader pointed out this bug report with commentary by Kenneth Graunke from January:

Team Fortress 2 requires some functionality from OpenGL 3.0 and GLSL 1.30, which we currently only support on Sandy Bridge and newer hardware. Unfortunately, Ironlake and earlier currently do not.

It should be possible to implement the missing functionality on Ironlake. The code is open source, and the hardware documentation is freely available on the web(*), so in theory, anyone could make progress toward this.

Sadly, our team is extremely busy working on newer hardware and is unlikely to have time to implement GL 3.0 support for Ironlake...at least not any time soon. I sincerely apologize for this; we'd all love to see it happen too.

(*) https://01.org/linuxgraphics/documentation/driver-documentation-prms

Basically, Intel Linux driver developers are busy working on newer hardware and other features, so missing functionality for older Intel products likely won't come. But since Intel does provide NDA-free programming documentation, other capable developers should be able to provide the said features. This bug comment was in response to Ironlake not working for Valve's Source Engine games on Linux.

While I do own some Ironlake hardware, I would much rather see Intel working on the newer hardware support. Even if the Intel i965 DRI driver implemented the necessary GL3/GLSL1.30 features for the Source Engine games, it would still be damn slow. It wasn't until Sandy Bridge that Intel graphics really got their act together in terms of integrated graphics performance. Ironlake isn't too capable and the newer (and yet-to-be-released) hardware is much more exciting and will open new doors. Intel also, obviously, wants you to upgrade your hardware too."

So the simple answer is: Intel doesn't care enough or have any incentive to implement the features, but at least you /could/ implement them if you wanted and had the skillset/funding to do so. I would recommend upgrading your hardware if you need OGL 3.x features as they are not and most likely will not be supported under the Ironlake architecture.

share|improve this answer

Rather then compiling these directly from source I'd be inclined to download the source RPMs, modify the configuration switch within the RPM .spec file and rebuild them. This would appear to be the only thing missing from the Fedora packages, see here: Why Fedora do not ship OpenGL 3.0? (even disable it for Intel HW).

excerpt from: [Mesa-users] Advertised OpenGL version on IvyBridge

On Sun, 2013-02-17 at 00:48 -0600, Michael Cronenworth wrote:

I heard on Phoronix that IvyBridge/SandyBridge hardware is supposed to have OpenGL 3.0/3.1 support on Mesa 9.0 and 9.1. However, glxinfo is telling me something different.

CPU: Core i3-3225 (HD4000) Distro: Fedora 18 x86_64 OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Desktop OpenGL version string: 2.1 Mesa 9.0.1 OpenGL shading language version string: 1.30

Is this accurate or is Phoronix mistaken?

HD4000 does indeed support OpenGL 3.1. However because of US patent implications Fedora builds Mesa without --enable-texture-float configure option and this disables OpenGL 3.0/3.1. I'm not a lawyer but AFAIK since it is not world-wide patent it is safe to use --enable-texture-float if you are outside US, and some Linux distros like Ubuntu do so by default. Rebuilding Mesa from source RPM on Fedora 18 with the named option enables OpenGL 3.1/shading 1.40 on my HD3000.

-- Tomash Brechko


Here are roughly the steps:

$ yumdownloader --source mesa-libGL
$ rpmdev-setuptree
$ rpm -Uvh mesa-9.2.4-1.20131128.fc19.src.rpm
$ (umask 022; sudo yum-builddep mesa-9.2.4-1.20131128.fc19.src.rpm)
$ (umask 022; sudo yum install gcc-c++)

Then edit the mesa.spec file:

$ vim ~/rpmbuild/SPECS/mesa.spec

Then add the switch to the .spec file:

## add the --enable-texture-float to configure

Now rebuild the package using the .spec file:

$ rpmbuild -ba ~/rpmbuild/SPECS/mesa.spec

You should now see newly built .rpm files in your RPMS directory when all is complete.


share|improve this answer
Ok - I did everything as you said and installed every .rpm file in the RPMS/x86_64 directory. But it still says OpenGL 2.1 . But I noticed something: in the mesa.spec file was --enable-texture-float already set... – haansn08 Mar 22 '14 at 15:43
@haansn08 - I noticed this as well when I went through it too. – slm Mar 22 '14 at 18:14

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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