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.
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.
Some you may have missed, popular articles from the last month:
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.
3 Likes, Who?
Quoting: cRaZy-bisCuiTQuoting: soulsourceJust to clarify: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.
You can play Divinity: Original Sin right now with stable Mesa, and you don't need any patches to mesa to get it running.
[...]
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.
0 Likes
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.
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:
Last edited by cRaZy-bisCuiT on 12 January 2017 at 12:01 am UTC
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
1 Likes, Who?
[quote=Colombo][quote=cRaZy-bisCuiT]
Quoting: soulsourceJust to clarify:Thanks, that would work as well! I just added another possible solution above.
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.
1 Likes, Who?
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 :)
1 Likes, Who?
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:
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.
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.
1 Likes, Who?
Thanks to all. The game is working flawless with your help
0 Likes
Quoting: M@yeulCSorry, that was a typo. I did correct that one. :)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 :)
1 Likes, Who?
See more from me