Confused on Steam Play and Proton? Be sure to check out our guide.
We do often include affiliate links to earn us some pennies. See more here.
You’ve most likely heard the term “Mesa” thrown around a lot, but you might not quite understand what it is. This is an attempt to clear up the question of “What exactly is Mesa and do I need it?”.

Note: This is an attempt to keep things simple for the average user to understand, so I won’t go overly technical with this.

Mesa is a term used to encompass the different open source graphics drivers available on Linux, so it can be what powers your GPU. I say can be, since AMD and NVIDIA also have their own closed-source proprietary drivers (what you would download from their website on Windows, if that makes that clearer).

Originally, Mesa began only to serve as an open source Linux implementation of OpenGL, but it has since grown to be a lot more than that. Mesa was started in 1993 by Brian Paul, but now it has many more developers, some of which are employed by the likes of AMD, Intel, Valve and others. Linux game porters like Feral Interactive have also contributed code to Mesa. Plenty of people also help with Mesa development in their spare time too.

Mesa itself is not a driver, as you will be using a different part of Mesa for each graphics card vendor. Still with me? Okay!

Mesa implements various API’s (Application programming interface) like OpenGL, OpenGL ES, OpenCL, OpenMAX, VDPAU, VA API, XvMC and Vulkan.

Mesa versioning
Something also worth noting, is that Mesa has switched to a year-based release numbering scheme. This is why Mesa jumped from 13 to 17 in release numbers.

Usually, it is recommended to update to a new major version of Mesa once they have done the first round of bug fixing. If you're concerned with stability and reliability stick to point release numbers like 17.0.1.

How to find your current version of Mesa
Do this in terminal:
glxinfo | grep Mesa
Which will give you something like this:
QuoteOpenGL core profile version string: 4.5 (Core Profile) Mesa 17.0.1
OpenGL version string: 3.0 Mesa 17.0.1
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.0.1

So you can see your Mesa version, along with what version of OpenGL support you have. This will likely show nothing if you're not using Mesa.

Intel
The story for Intel is mostly pretty simple, if you’re using Intel integrated graphics, you will be using Mesa. Except for the ‘PowerVR’ based chips in the GMA 500, GMA 600, GMA 3600, GMA 3650 series.

Intel usually supports Mesa quite well and even have their own Mesa update tool named ‘Intel® Graphics Update Tool’ to give certain distributions the latest version of Mesa.

Intel also have the ‘anv’ Vulkan driver, which seems to be largely feature complete and should work.

AMD
There are a number of different Mesa drivers available for AMD cards, you can see a little information on that here.

The latest AMD cards use the ‘amdgpu’ kernel driver (the proprietary AMDGPU-PRO also uses a version of this, which has not yet been accepted into the Linux kernel yet), whereas all older cards use the ‘radeon’ kernel driver. Each part of Mesa listed below hooks into one of those kernel drivers, which part depends on your graphics card model.

As mentioned, the kernel driver (either ‘radeon’ or ‘amdgpu’) is paired with one of these:
radeon - R100 series
r200 - R200 series
r300g - R300, R400, and R500 series
r600g - R600, R700, HD 5000 and HD 6000
radeonsi - HD 7000, HD 8000 and RX 200, RX 300 and RX 400

You also have the ‘radv’ driver for Vulkan, which was officially added in Mesa 13. It’s still in development right now, so it’s to be considered in beta.

Right now, most AMD graphics cards have pretty good support in Mesa, with the closed source driver often not being needed. Our own statistics have users telling us that only around 11% of Linux gamers with an AMD GPU use the proprietary AMD driver.

NVIDIA
NVIDIA isn’t quite such a nice story, as NVIDIA doesn't help towards development of Mesa, since they prefer their own closed-source proprietary drivers. For NVIDIA cards Mesa is typically quite far behind the closed drivers in terms of performance and features due to this. Mesa also typically doesn’t work well, if at all with the very latest generation of NVIDIA graphics cards.

With Mesa, you have the nouveau (pronounced like nu-vo) kernel driver, but like AMD, NVIDIA uses nouveau plus another part of Mesa depending on your graphics card model.

Later generations of NVIDIA cards require something called ‘signed firmware’ in order for Mesa to interact with them and NVIDIA has been quite slow to release it.

The ‘Pascal’ generation in particular right now has very little support, as NVIDIA has only recently provided the signed firmware required.

For NVIDIA, it’s usually best to stick with the proprietary driver. Older generations have reasonable support in Mesa now, but you will still see better performance with the proprietary NVIDIA driver.


I hope this all makes sense, but if anything really needs further clarification be sure to reach out in the comments. Article taken from GamingOnLinux.com.
33 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. You can also follow my personal adventures on Bluesky.
See more from me
The comments on this article are closed.
All posts need to follow our rules. For users logged in: please hit the Report Flag icon on any post that breaks the rules or contains illegal / harmful content. Guest readers can email us for any issues.
22 comments
Page: 1/2»
  Go to:

Faalagorn Mar 6, 2017
Good article. It'll surely help people explain the basics behind drivers, especially when using AMD. I was confused at first what Mesa, RadeonSI and radv are, so had to look online to understand it.

Have you considered adding this to GOL Wiki Liam? It would be helpful to have an editable page later on, especially when this article gets old :)
Liam Dawe Mar 6, 2017
Have you considered adding this to GOL Wiki Liam? It would be helpful to have an editable page later on, especially when this article gets old :)
Good thinking batman. I've opened a Wiki page as this will likely vanish after a while.


Last edited by Liam Dawe on 7 March 2017 at 12:53 pm UTC
MasterSleort Mar 7, 2017
For those of you that want the latest stable mesa driver for AMD (or intel for that matter), the following ppa can be used: ppa:paulo-miguel-dias/pkppa

sudo add-apt-repository ppa:paulo-miguel-dias/pkppa
sudo apt-get update


I just thought I'd add it, like the "Intel® Graphics Update Tool" in the article ;)


Last edited by MasterSleort on 7 March 2017 at 12:28 am UTC
Shmerl Mar 7, 2017
Features wise, nvc0 is close to radeonsi (see https://mesamatrix.net, but its main problem is lack of GPU reclocking in nouveau, i.e. the kernel driver (Nvidia are causing it, by not documenting anything, signing their firmware and etc.). So you can't use GPUs with it besides at the minimum clock frequency, which makes them useless for anything demanding.


Last edited by Shmerl on 7 March 2017 at 3:12 am UTC
GustyGhost Mar 7, 2017
Speaking of proprietary firmware, will AMD ever open up their GPU firmware? It seems hypocritical to be talking the talk with this "GPU open" initiative and yet not walking the walk. I hate that I have to add non-free repos just to use their nonsense.
Shmerl Mar 7, 2017
Speaking of proprietary firmware, will AMD ever open up their GPU firmware? It seems hypocritical to be talking the talk with this "GPU open" initiative and yet not walking the walk. I hate that I have to add non-free repos just to use their nonsense.

I suppose they'll never fully open source it, because part of their firmware is handling HDCP garbage and therefore can't be open by definition. However, they can possibly help documenting what's needed to make a fully open alternative for those who don't care about HDCP, and may be unlike Nvidia they won't prevent loading such open firmwares (no nasty lock outs with signing and so on).

You can also ask the same question about their CPU firmware.


Last edited by Shmerl on 7 March 2017 at 5:18 am UTC
soulsource Mar 7, 2017
The same question, about open-sourcing their proprietary GPU firmware, of course also applies to Intel.
jaguar Mar 7, 2017
is it time to go AMD route for our next graphic card? (almost same perf than nvidia closed + open source driver)
is it possible to run the latest AAA with the open source driver?
Guppy Mar 7, 2017
[...] a fully open alternative for those who don't care about HDCP[...]

I'm curious - under what circumstances would you need HDCP with linux ? I mean there is ( AFAIK ) no licensed BD player for linux so we don't really have a source of HDCP content or am I missing something here?
Shmerl Mar 7, 2017
is it time to go AMD route for our next graphic card?

I'd say wait for Vega to come out (this spring), and analyze some benchmarks. Then decide.


Last edited by Shmerl on 7 March 2017 at 7:12 am UTC
Shmerl Mar 7, 2017
[...] a fully open alternative for those who don't care about HDCP[...]

I'm curious - under what circumstances would you need HDCP with linux ? I mean there is ( AFAIK ) no licensed BD player for linux so we don't really have a source of HDCP content or am I missing something here?

I don't think AMD firmware is differentiated per OS. And since they support HDCP in some cases, they just have it there.

I have no idea if HDCP is ever used on Linux, but I suppose some DRM blobs can do that (Widevine?). I've never used anything like that, and I'm not interested in touching that trash.


Last edited by Shmerl on 7 March 2017 at 7:19 am UTC
ryad Mar 7, 2017
is it time to go AMD route for our next graphic card? (almost same perf than nvidia closed + open source driver)
is it possible to run the latest AAA with the open source driver?

Generally speaking, of course it is possible to run latest AAA games like Deus Ex Mankind with amdgpu/radeonsi. However, for several reasons, you have a more stable experience with Nvidia hardware and their closed-source driver at the moment (but this may differ in future).

I certainly will build AMD hardware into my next rig. Though I have to keep in mind that I won't get all performance out of the hardware on Linux (in contrast to my current Intel/Nvidia setup). Still I prefer the way AMD is going and I like to support it. As I mostly play CS:GO, Civilization and XCOM, it's currently no big deal for me to get about 80% of the graphics performance compared to a Windows setup.
silmeth Mar 7, 2017
Our own statistics have users telling us that only around 11% of Linux gamers use the proprietary AMD driver.
Not true.

According to your own statistics only 11.44 % of AMD Linux users use proprietary drivers. And as only 21.25 % Linux gamers use AMD GPUs, it is only 2.43 % of Linux gamers that use AMD proprietary drivers. ;-)


Last edited by silmeth on 7 March 2017 at 10:37 am UTC
lucinos Mar 7, 2017
An other way to put it is that there exist practically two type of drivers, open source (mesa) and close source (nvidia).

There are pros and cons but generally mesa is better for desktop and nvidia is better for games.

If someone wants close source drivers, he should definitely choose nvidia gpu and if someone wants open source, he should definitely avoid nvidia.

Open source drivers on nvidia gpu do exist (nouveau) but are worse than amd and intel and nvidia should be avoided if someone wants to avoid close source drivers.

Amd is also ...complicated... but it is generally best to just stick with open source drivers. If someone wants to go with close source he should just had nvidia.

Mesa although still behind from nvidia for gaming is getting better with every release and is already very competitive.
soulsource Mar 7, 2017
AMD is not really complicated. Actually it's as easy as this:
If you need either OpenCL 2.0 or OpenGL compatibility contexts (if you don't know what those are, you don't need them), use the proprietary drivers. In any other case stick to the open source drivers.
Liam Dawe Mar 7, 2017
Our own statistics have users telling us that only around 11% of Linux gamers use the proprietary AMD driver.
Not true.

According to your own statistics only 11.44 % of AMD Linux users use proprietary drivers. And as only 21.25 % Linux gamers use AMD GPUs, it is only 2.43 % of Linux gamers that use AMD proprietary drivers. ;-)
Do you really need to be so pedantic? You know what I meant.
silmeth Mar 7, 2017
Do you really need to be so pedantic? You know what I meant.
I didn’t at first – my initial thought after reading this sentence was “11 % of Linux gamers? That sounds like about a half of AMD users. Cannot be true, has to be much less.” Only after I checked the stats myself, I understood you indeed mean AMD Linux gamers, not all of them.
Liam Dawe Mar 7, 2017
Do you really need to be so pedantic? You know what I meant.
I didn’t at first – my initial thought after reading this sentence was “11 % of Linux gamers? That sounds like about a half of AMD users. Cannot be true, has to be much less.” Only after I checked the stats myself, I understood you indeed mean AMD Linux gamers, not all of them.
Either way, I've made it a little clearer :)
Creak Mar 7, 2017
is it time to go AMD route for our next graphic card? (almost same perf than nvidia closed + open source driver)
is it possible to run the latest AAA with the open source driver?
I personally own a RX 480 and I'm quite happy with it. My kind of games are Dota 2, Cities: Skyline, Civilization (all of them :D ), Alien: Isolation, ...
I'm sure an NVIDIA card would perform better for the same price, but I like the fact that with AMD it is plug and play thanks to the open source drivers, and also that each new release of Mesa bring a ton of improvements!

I'm curious - under what circumstances would you need HDCP with linux ? I mean there is ( AFAIK ) no licensed BD player for linux so we don't really have a source of HDCP content or am I missing something here?
Maybe I'm wrong, but for what I understand HDCP isn't a feature, it's a mandatory API that has to be implemented if you want to connect devices using DVI, HDMI, DP, etc... A BD player needs it, but your display needs it also. So, no HDCP, no image basically...
crt0mega Mar 7, 2017
If you need either OpenCL 2.0 or OpenGL compatibility contexts (if you don't know what those are, you don't need them), use the proprietary drivers.
Unfortunately there are some games which rely on compat profiles contexts IIRC.


Last edited by crt0mega on 7 March 2017 at 2:54 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.