Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal. You can also buy games using our partner links for GOG and Humble Store.
We do often include affiliate links to earn us some pennies. See more here.
The code for OpenGL threaded GL dispatch is now finally in Mesa-git, after multiple developers attempts to fix it up. This should improve performance in multiple games for users of the open source Mesa drivers.

Enabling it was spread across multiple commits a few hours ago by a Mesa developer (examples: #1, #2).

Basically, this is an attempt to reduce the CPU overhead of Mesa, which has caused issues in a number of games. It won't help all games though, to be clear on that, as some developers already do some form of it (like Feral Interactive) in their games directly.

It has been tested against (at least) Borderlands 2 and Civilization VI by the mesa developers, which showed improved performance.

It sounds like they will still use a whitelist, as noted by this mailing list entry on the Mesa-dev mailing list where it was given the go-ahead:
QuoteYeah it looks like it can be merged and we can start adding a white list. From the little testing we've done, it seems that a lot of games from Aspyr Media will benefit from this, namely Civilization 6 and the Borderlands series.

As of yet, I don't see anything to indicate a whitelist has been made.

You can test it by using "mesa_glthread=true %command%" in the launch options for Steam games (thanks lordheavy).

Work on it isn't complete though, as following some other discussions on the Mesa-dev mailing list there's still a bunch of 'piglit tests' it causes crashes with. Those will gradually get cleaned up over time.

For more info on threaded OpenGL dispatch, you can see these presentation slides from a previous X.Org dev conferences. My googling didn't find anything newer. Article taken from GamingOnLinux.com.
10 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.
16 comments

lordheavy Mar 16, 2017
it can be easily tested with mesa_glthread=true %command% under steam
Liam Dawe Mar 16, 2017
it can be easily tested with mesa_glthread=true %command% under steam
Thanks dude, added it in.
Eike Mar 16, 2017
View PC info
  • Supporter Plus
Work on it isn't complete though, as following some other discussions on the Mesa-dev mailing list there's still a bunch of 'piglit tests' it causes crashes with. Those will gradually get cleaned up over time.

As I never heard of it, I looked it up.
It's a framework for automatic OpenGL tests:
https://people.freedesktop.org/~nh/piglit/


Last edited by Eike on 16 March 2017 at 11:16 am UTC
Liam Dawe Mar 16, 2017
Work on it isn't complete though, as following some other discussions on the Mesa-dev mailing list there's still a bunch of 'piglit tests' it causes crashes with. Those will gradually get cleaned up over time.

As I never heard of it, I looked it up.
It's a framework for automatic OpenGL tests:
https://people.freedesktop.org/~nh/piglit/
Thanks, popped a quick link in the text to it if people want to see.
buenaventura Mar 16, 2017
Unitygames seem to be CPU bound on my machine sometimes, like the demo of Shadow Tactics, which is laggy. I would like to test it, is it possible to do on the DRM-free demo?

I hope they enable it fully soon! Many games are JUST under the threshold for being painlessly playable for me right now, perhaps a little bump like this will be what it takes.
elmapul Mar 16, 2017
we need to do benchmarks again for a lot of games...
maybe now some games that used to perform on pair or worse than windows version could show an clear advantage...

after all, porters were aiming at the game be playable not to perform great, now we can have something better than they expected


Last edited by elmapul on 16 March 2017 at 12:42 pm UTC
omboy 8 years Mar 16, 2017
I'm just going to leave this here

View video on youtube.com
Leopard Mar 16, 2017
I'm just going to leave this here

View video on youtube.com

Poor Windows lady got cold i guess...
Shmerl Mar 16, 2017
It won't help all games though, to be clear on that, as some developers already do some form of it (like Feral Interactive) in their games directly.

I suppose it will also conflict with CSMT in Wine, if enabled. Though it would be interesting to test and check the difference.
cRaZy-bisCuiT Mar 17, 2017
Could anyone be so kind and check out if Tropico 5 will benefit from it?
lejimster Mar 17, 2017
I wish I could test this but I don't have time right now. Samsai has a Radeon based system doesn't he? I wonder if he could do some testing for us ;-)
STiAT Mar 17, 2017
it can be easily tested with mesa_glthread=true %command% under steam

That's a cool thing, since even in the launchers / shell script launching the games that can be added if the game requires it and does not have it's own threading model.
Shmerl Mar 17, 2017
Not sure whey they used lower case variable though. Usual Mesa variables are upper case. Not that it matters much (I personally prefer lower case), but why not be consistent?

https://www.mesa3d.org/envvars.html


Last edited by Shmerl on 17 March 2017 at 2:22 pm UTC
edmondo Mar 18, 2017
Not sure whey they used lower case variable though. Usual Mesa variables are upper case. Not that it matters much (I personally prefer lower case), but why not be consistent?

Because it's a dri option (lower case) and not a mesa environment variable (higher case). But yes, you can pass dri options as environment variables :)
Shmerl Mar 19, 2017
Not sure whey they used lower case variable though. Usual Mesa variables are upper case. Not that it matters much (I personally prefer lower case), but why not be consistent?

Because it's a dri option (lower case) and not a mesa environment variable (higher case). But yes, you can pass dri options as environment variables :)

Good to know, thanks!
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.