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.

Divinity: Original Sin may soon work with Mesa drivers

By - | Views: 36,021
Divinity: Original Sin [Official Site] is one game that the stable open source Mesa drivers currently cannot run without hacks, but it looks like the Mesa team has been testing it.

Just today a commit was sent in to Mesa which mentioned "drirc: Allow extension midshader for Divinity: Original Sin (EE)". It's interesting to see game-specific changes like this, as some games will sadly need them.

You can see the commit here, which has already landed in Mesa-git. You can see the actual bug report about it here.

Hopefully with this patch landed, it means more people can enjoy another highly rated Linux-native game on open source drivers. It might still need other hacks to run, as previously it needed more than one change.

While this is only changing a config file to have this game-specific change in by default, it's still nice that users don't have to look up what to do to get it working.

I cannot test it personally, as I don't have an AMD card to test with. Article taken from GamingOnLinux.com.
5 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 came back to check 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. Find me on Mastodon.
See more from me
The comments on this article are closed.
48 comments
Page: «5/5
  Go to:

Shmerl Jan 9, 2017
Quoting: tuubiIn any case, I don't see the harm in them requiring adherence to standard practices, like the XDG directory spec.

I fully agree here. I meant mostly that it shouldn't become a programmatic dependency, like games needing to use some Steam specific APIs and such.
Colombo Jan 9, 2017
Quoting: cRaZy-bisCuiT
Quoting: soulsourceJust to clarify:
You can play Divinity: Original Sin right now with stable Mesa, and you don't need any patches to mesa to get it running.
[...]
Thank you very much! The game runs very fine now! Is there a way to make the game starting directly from Steam with the Hack applied? Obviously the Multiplayer won't work like this.

Why won't Multiplayer work like this?

You can run it from steam without problem, steam runs the runner.sh (or whatever), so if you just put all the code into runner.sh, you are good.
cRaZy-bisCuiT Jan 10, 2017
Thanks for the guide below. Please do allow me to adjust it a bit so online gaming will be possible - obviously it won't work without being started by Steam - Steam runtime need to be up and running.

All you need is to set the environment variable allow_glsl_extension_directive_midshader=true, and you'll need to LD_PRELOAD the preload-shim linked in the upstream bug report (link.

Step by step guide:
1) Download the source for the LD_PRELOAD shim
2) Compile it using the command given inside the just downloaded patch file. This will give you a divos-hack.so file.
gcc -s -O2 -shared -fPIC -o divos-hack.{so,c} -ldl
3) Copy the just created divos-hack.so file to your Divinity: Original Sin game folder (the subfolder called game, within the install path)
4) Right click on the game in the Steam Library, choose "Properties" -> "SET LAUNCH OPTIONS..." and enter the Following:

allow_glsl_extension_directive_midshader=true LD_PRELOAD="divos-hack.so" %command%


Quoting: soulsourceJust to clarify:
You can play Divinity: Original Sin right now with stable Mesa, and you don't need any patches to mesa to get it running.
All you need is to set the environment variable allow_glsl_extension_directive_midshader=true, and you'll need to LD_PRELOAD the preload-shim linked in the upstream bug report (link.

Step by step guide:
1) Download the source for the LD_PRELOAD shim
2) Compile it using the command given inside the just downloaded patch file. This will give you a divos-hack.so file.
gcc -s -O2 -shared -fPIC -o divos-hack.{so,c} -ldl
3) Copy the just created divos-hack.so file to your Divinity: Original Sin game folder (the subfolder called game, within the install path)
4) now, from said game folder, run Divinity using the following command:
allow_glsl_extension_directive_midshader=true LD_PRELOAD="divos-hack.so" ./runner.sh


Last edited by cRaZy-bisCuiT on 12 January 2017 at 12:01 am UTC
cRaZy-bisCuiT Jan 10, 2017
[quote=Colombo][quote=cRaZy-bisCuiT]
Quoting: soulsourceJust to clarify:
Why won't Multiplayer work like this?

You can run it from steam without problem, steam runs the runner.sh (or whatever), so if you just put all the code into runner.sh, you are good.
Thanks, that would work as well! I just added another possible solution above.
MayeulC Jan 11, 2017
Quoting: cRaZy-bisCuiTallow_glsl_extension_directive_midshader=true LD_PRELOAD="divos-hack.so" ./runner.sh %command%

I didn't try, but I think that ./runner.sh is redundant here (or could prevent the game from being launched, actually).

I also generally avoid changing the game's files, in case they get updated by Steam, so I would advise against modifying runner.sh :)
soulsource Jan 11, 2017
Ah, right. I didn't think about Steam, as I bought Divinity:OS at GoG.
For Steam you'll need to preserve the original LD_PRELOAD variable, as Steam also sets it (for the Steam Overlay, for instance).
I think the correct launch options should be:
allow_glsl_extension_directive_midshader=true LD_PRELOAD="divos-hack.so:$LD_PRELOAD" %command%
It might be necessary to give the full path to divos-hack.so in case Steam runs the program from a different folder.

Thanks for bringing this up, I'll edit my original post.
Al3s Jan 11, 2017
Thanks to all. The game is working flawless with your help
cRaZy-bisCuiT Jan 12, 2017
Quoting: M@yeulC
Quoting: cRaZy-bisCuiTallow_glsl_extension_directive_midshader=true LD_PRELOAD="divos-hack.so" ./runner.sh %command%

I didn't try, but I think that ./runner.sh is redundant here (or could prevent the game from being launched, actually).

I also generally avoid changing the game's files, in case they get updated by Steam, so I would advise against modifying runner.sh :)
Sorry, that was a typo. I did correct that one. :)
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.