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:
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.
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.
Some you may have missed, popular articles from the last month:
Could anyone be so kind and check out if Tropico 5 will benefit from it?
0 Likes
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 ;-)
0 Likes
Quoting: lordheavyit 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.
0 Likes
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
https://www.mesa3d.org/envvars.html
Last edited by Shmerl on 17 March 2017 at 2:22 pm UTC
0 Likes
Quoting: ShmerlNot 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 :)
1 Likes, Who?
Quoting: edmondoQuoting: ShmerlNot 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!
0 Likes
See more from me