The Linux version of Pillars of Eternity has had some annoying rendering issues ever since it was first released, and although people have submitted bug reports for them, Obsidian hasn't done anything about them and they're still present in the latest patch.
Luckily, a programming-savvy fan who goes by the name of dscharrer has now created an unofficial hack which fixes several of those issues!
Since the hack hasn't been publicized in many places yet, I'm creating this thread to help other Linux gamers (and Obsidian) become aware of it.
Instructions for installing the hack are at the end of this post.
The rendering issues in question, are:
Black noise on water surfaces
The picture is self-descriptive I think.
Anti-aliasing not working
Without the hack, many Linux users get no anti-aliasing at all in Pillars of Eternity, no matter what graphics quality they choose in the settings.
The hack enforces anti-aliasing of character/weapon outlines and selection circles. Textures on the characters are still not anti-aliased even with the hack (look at the stripes on her head in the screenshot), so it's not perfect, but at least an improvement.
Flickering black splotches on the map screen
This is actually a problem that has only surfaced recently, because it only happens with the newest version of the open-source (Mesa) graphics drivers for Intel/AMD/Nvidia cards.
A performance improvement that was added in the latest version of the drivers, causes the driver to no longer perform some redundant function calls which it did in earlier version. A standard-compliant OpenGL application should not be affected by this change at all, but unfortunately it seems that Pillars of Eternity (and maybe other Unity games?) incorrectly relied on the earlier redundant behavior of the drivers.
In this case, it horribly messes up the drawing of the fog-of-war on the map screen.
The hack fixes that.
Bonus: Disabling map overlays
As a bonus, the hack also gives you the option of disabling map screen overlays altogether. If you enable said option, the following things will simply not be rendered on map screen... (Note: the main viewport is not affected - only the map screen!)
Fog of war
Map markers
Selection circles
Viewport rectangle
Inset shadow around the map's border
Of course there is no good reason to enable this option for normal game play, but it's great in case you want to take map screenshots for walk-throughs and the like.
Still without fix: Capes not being rendered
In the Linux version of Pillars of Eternity, capes are simply not rendered at all. This hack does not fix that; I just mention it here for the sake of completeness, since AFAIK that's the last remaining graphics rendering problem with the game on Linux.
Instructions
The hack only works for the open-source (Mesa) graphics-drivers - which are available for Intel / AMD / Nvidia cards.
(AMD and Nvidia also offer a proprietary driver as an alternative - this hack will not work for those. So switch to the open-source drivers if you want this hack.)
This is how you enable the hack for your game:
1. Make sure you have the necessary dependencies installed:
GCC
Mesa development files
pkg-config
On Ubuntu, this command should install those dependencies for you:
4.OPTIONAL: Edit pillarsfix.c in a text editor if you want to customize it. For example if you want to disable map overlays (see above), you need to find the line that says #define PILLARS_PLAIN_MAP 0 and change the 0 to 1.
5. Start the game by running:
sh pillarsfix.c ./start.sh
(Or if you don't use the GOG version, replace ./start.sh with whatever command you would normally use to start the game in your version.)
You will always have to run the game like that from now on if you want to keep using the hack.
Note that the hack does not modify the game's executable or data files on disk; it does all it's magic "live" for the currently running game instance when you run it as shown it step 5.
Have fun!
And let's hope that Obsidian takes this as an inspiration to fix these issues properly now.
Question
spambot
The Linux version of Pillars of Eternity has had some annoying rendering issues ever since it was first released, and although people have submitted bug reports for them, Obsidian hasn't done anything about them and they're still present in the latest patch.
Luckily, a programming-savvy fan who goes by the name of dscharrer has now created an unofficial hack which fixes several of those issues!
Since the hack hasn't been publicized in many places yet, I'm creating this thread to help other Linux gamers (and Obsidian) become aware of it.
Instructions for installing the hack are at the end of this post.
The rendering issues in question, are:
Black noise on water surfaces
The picture is self-descriptive I think.
Anti-aliasing not working
Without the hack, many Linux users get no anti-aliasing at all in Pillars of Eternity, no matter what graphics quality they choose in the settings.
The hack enforces anti-aliasing of character/weapon outlines and selection circles. Textures on the characters are still not anti-aliased even with the hack (look at the stripes on her head in the screenshot), so it's not perfect, but at least an improvement.
Flickering black splotches on the map screen
This is actually a problem that has only surfaced recently, because it only happens with the newest version of the open-source (Mesa) graphics drivers for Intel/AMD/Nvidia cards.
A performance improvement that was added in the latest version of the drivers, causes the driver to no longer perform some redundant function calls which it did in earlier version. A standard-compliant OpenGL application should not be affected by this change at all, but unfortunately it seems that Pillars of Eternity (and maybe other Unity games?) incorrectly relied on the earlier redundant behavior of the drivers.
In this case, it horribly messes up the drawing of the fog-of-war on the map screen.
The hack fixes that.
Bonus: Disabling map overlays
As a bonus, the hack also gives you the option of disabling map screen overlays altogether. If you enable said option, the following things will simply not be rendered on map screen... (Note: the main viewport is not affected - only the map screen!)
Of course there is no good reason to enable this option for normal game play, but it's great in case you want to take map screenshots for walk-throughs and the like.
Still without fix: Capes not being rendered
In the Linux version of Pillars of Eternity, capes are simply not rendered at all. This hack does not fix that; I just mention it here for the sake of completeness, since AFAIK that's the last remaining graphics rendering problem with the game on Linux.
Instructions
The hack only works for the open-source (Mesa) graphics-drivers - which are available for Intel / AMD / Nvidia cards.
(AMD and Nvidia also offer a proprietary driver as an alternative - this hack will not work for those. So switch to the open-source drivers if you want this hack.)
This is how you enable the hack for your game:
1. Make sure you have the necessary dependencies installed:
On Ubuntu, this command should install those dependencies for you:
2. Open the Pillars of Eternity installation directory in a terminal. (If you use the GOG version, it's the directory which contains the start.sh.)
3. Download the pillarsfix.c hack into that directory, for example by running:
4. OPTIONAL: Edit pillarsfix.c in a text editor if you want to customize it. For example if you want to disable map overlays (see above), you need to find the line that says #define PILLARS_PLAIN_MAP 0 and change the 0 to 1.
5. Start the game by running:
(Or if you don't use the GOG version, replace ./start.sh with whatever command you would normally use to start the game in your version.)
You will always have to run the game like that from now on if you want to keep using the hack.
Note that the hack does not modify the game's executable or data files on disk; it does all it's magic "live" for the currently running game instance when you run it as shown it step 5.
Have fun!
And let's hope that Obsidian takes this as an inspiration to fix these issues properly now.
Edited by spambot17 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now