Dying Light

Dying Light

View Stats:
Linux/mesa Dying Light issue pinned down
@Modlin_Techland

Hi, I am a comitter of the Linux mesa OpenGL stack. We were able to pin down the issue as to why Dying Light do not work with the opensource AMD drivers in mesa (or any mesa driver for that matter).

The situtation is two fold, first the game requires fixed-pipeline stuff in a GL4.5 context however we could workaround that (although you should still fix it). The more fundamental issue is that invalid GLSL shaders are getting created as "mesa" isn't matched in your vendor detection method in `libropengl.so` resulting in:

```
#version 450

in int gl_VertexID ;

void main() {
gl_Position = vec4(0,0,0,1);
}
```

which is what causes the black screen issue as the redefinition of `gl_VertexID` is illegal GLSL. This happens because a variable called 'g_OpenGL_DeclareVertexId' is getting set. I don't know why you would ever want to redefine `gl_VertexID` as its completely illegal GLSL however maybe it was done as a stub while you were translating directx shaders, who knows. Fun fact: Nvidia drivers compile that completely invalid GLSL, what a suprise :/

Bottom line to fix the blackscreen issue would be if you guys can push a patch that removes `#define OPENGL_DECLARE_VERTEX_ID 1` winding up in your shaders or just remove the line that redefines `in int gl_VertexID`.

Contact me if you need any additional help,
P.S., I don't own a copy of this game so this was in collaboration with Frogging101 from #radeon who found the original `gl_VertexID` redefinition issue.
< >
Showing 16-30 of 36 comments
Frogging101 Sep 10, 2017 @ 10:51am 
Originally posted by Atari:
With Mesa 17.2 and "MESA_GL_VERSION_OVERRIDE=4.5 MESA_GLSL_VERSION_OVERRIDE=450 %command%" as launch option I'm finally able to play the game. But performance is not the best and the game is kind of laggy.

Yeah, you're probably seeing the performance issues that I mentioned earlier. And if your experience is anything like mine, you'll also find that the framerate plummets in select areas such as the Tower lobby or near Zere's trailer. The game triggers some suboptimal memory management in the driver that results in a lot of swapping between different areas of memory. I submitted kernel patches to fix this; they're in the queue for Linux 4.14. Hopefully it'll help :)

https://www.phoronix.com/scan.php?page=news_item&px=AMDGPU-VRAM-D-Games
Nefelim4ag Oct 2, 2017 @ 2:18am 
@Atari,
Do you have a intel HD card?
mieLouk Oct 28, 2017 @ 8:28am 
Also with "MESA_GL_VERSION_OVERRIDE=4.5 MESA_GLSL_VERSION_OVERRIDE=450 %command%" I'm not able to play the game. Black screen with a white line as a timer. The game exits without an error message. At startup I still get the messagen with Mesa 3.0 vs 3.3.

Are the start options not working or did they change?

Arch Linux 64 bit, mesa 17.2.3 , kernel 4.13.9 on AMD RX480.
Frogging101 Oct 28, 2017 @ 10:58am 
Originally posted by FeatureCreature:
Also with "MESA_GL_VERSION_OVERRIDE=4.5 MESA_GLSL_VERSION_OVERRIDE=450 %command%" I'm not able to play the game. Black screen with a white line as a timer. The game exits without an error message. At startup I still get the messagen with Mesa 3.0 vs 3.3.

Are the start options not working or did they change?

Arch Linux 64 bit, mesa 17.2.3 , kernel 4.13.9 on AMD RX480.

You definitely shouldn't be getting the version mismatch message with those environment variables set. I would carefully check the launch options for typos.
Jose[Linux] Oct 28, 2017 @ 2:10pm 
I can play fine with those parameters. Would be great if Techland could patch the game, though.
mieLouk Nov 9, 2017 @ 4:15am 
You definitely shouldn't be getting the version mismatch message with those environment variables set. I would carefully check the launch options for typos.

I can start up the game with MESA_GL_VERSION_OVERRIDE=4.4 MESA_GLSL_VERSION_OVERRIDE=440 %command% or MESA_GL_VERSION_OVERRIDE=4.5 MESA_GLSL_VERSION_OVERRIDE=450 %command% but after that I get a multicolor pixeled screen for a moment, which looks to me like corrupted memory output. Then it gets dark and a white line is slowly progressing on the bottom from left to right till after a few minutes, the game shuts down.

Now being on mesa 17.2.4 and Kernel 4.13.11
ballysallagh Mar 2, 2018 @ 12:02pm 
I'm also having the same issue.
Without the launch options I get:
1. The unsupported version of OpenGL message
2. A black screen which slowly loads a white line at the bottom for a few seconds before crashing
With the launch options I get:
1. Garbled graphics for a few seconds
2. A black screen which slowly loads a white line at the bottom for a few seconds before crashing

I'm running Debian testing with kernel version 4.14.0, mesa version 17.3.3 on an AMD RX 470.
Easy_Target Mar 2, 2018 @ 8:08pm 
Doesn't work on my end.
Eddie[Linux] May 30, 2018 @ 9:40pm 
Is everybody getting same log in ~/.local/share/Steam/steamapps/common/Dying Light/DW/out/logs?

{07:00:04.229} INFO: [INFO] > [OpenGL] MajorVersionDetected=4 MinorVersionDetected=5
{07:00:04.229} INFO: [INFO] > [OpenGL] Extension ARB_debug_output is supported
{07:00:04.229} INFO: [INFO] > [OpenGL] Extension ARB_blend_func_extended is supported
****HERE****{07:00:04.229} INFO: [INFO] > [OpenGL] Video memory detected: 0 [MB]!
{07:00:04.302} INFO: [INFO] > [OpenGL] GPU's vendor id: 4098 [0x1002]; GPU's device id: 26607 [0x67ef].
{07:00:04.302} INFO: [INFO] > [OpenGL] Shader binary dir = 4_5_Mesa_18_0_4.
{07:00:04.302} INFO: [INFO] > [OpenGL] GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 4
{07:00:04.302} INFO: [INFO] > [OpenGL] GL_MAX_UNIFORM_BLOCK_SIZE = 65536
{07:00:04.808} INFO: [INFO] > Texture streaming lowest priority distance set to 100m
{07:00:05.372} INFO: [INFO] > [SDL::WindowMode] Current SwapInterval: 0
{07:00:05.372} INFO: [INFO] > [SDL::SetWindowMode] Setting no vsync resulted in: 0 SDL_GetError: Surface doesn't have a colorkey
{07:00:05.372} INFO: [INFO] > [SDL::WindowMode] Current SwapInterval: 0
{07:00:05.428} INFO: [INFO] > [SDL] Resizing window to 3840x2160 f:1 v:0
{07:02:12.818} INFO: [INFO] > Texture streaming buffer set to 400MB
{07:02:12.834} INFO: [INFO] > >>>>> Audio init
{07:02:13.109} INFO: [INFO] > FMOD::Driver: Default Output Device
{07:02:13.225} INFO: [INFO] > FMOD is using (11) output type.
{07:02:13.225} INFO: [INFO] > FMOD Software Format Info:
{07:02:13.225} INFO: [INFO] | Out Sample Rate: <48000>
{07:02:13.225} INFO: [INFO] | Format: <2>
{07:02:13.225} INFO: [INFO] | Out Channels: <2>
{07:02:13.225} INFO: [INFO] | Max Input Channels: <8>
{07:02:13.225} INFO: [INFO] | Bits: <16>
{07:02:13.225} INFO: [INFO] > FMOD Mixer blocksize = 21.33 ms
{07:02:13.225} INFO: [INFO] > FMOD Mixer blocks count = 4
{07:02:13.225} INFO: [INFO] > FMOD Mixer Total buffer size = 85.33 ms
{07:02:13.225} INFO: [INFO] > FMOD Mixer Average Latency = 53.33 ms
{07:02:13.356} INFO: [INFO] > Caught signal 11 (Segmentation fault).
{07:02:13.390} INFO: [INFO] > /usr/lib/libc.so.6(+0x368f0) [0x7fc3d3d9e8f0]
{07:02:13.390} INFO: [INFO] | libengine.so(_ZN12CTextManager10InitializeEv+0x26f) [0x7fc3d58640cf]
{07:02:13.390} INFO: [INFO] | libengine.so(_Z13CreateTextMgrv+0x40) [0x7fc3d5864220]
{07:02:13.390} INFO: [INFO] | libengine.so(_ZN9CRenderer13LoadResourcesEv+0x2c) [0x7fc3d585187c]
{07:02:13.390} INFO: [INFO] | libengine.so(_ZN5CGame10InitializeEPciPvS1_jjP18IProgressIndicator+0x1944) [0x7fc3d53298b4]
{07:02:13.390} INFO: [INFO] | /home/user/.local/share/Steam/steamapps/common/Dying Light/DyingLightGame(main+0xa45) [0x43e315]
{07:02:13.390} INFO: [INFO] | /usr/lib/libc.so.6(__libc_start_main+0xeb) [0x7fc3d3d8b06b]
{07:02:13.390} INFO: [INFO] | /home/user/.local/share/Steam/steamapps/common/Dying Light/DyingLightGame() [0x4425d9]
MNEUMATIC Nov 19, 2018 @ 1:58am 
Originally posted by EddieLinux:
Is everybody getting same log in ~/.local/share/Steam/steamapps/common/Dying Light/DW/out/logs?

{07:00:04.229} INFO: [INFO] > [OpenGL] MajorVersionDetected=4 MinorVersionDetected=5
{07:00:04.229} INFO: [INFO] > [OpenGL] Extension ARB_debug_output is supported
{07:00:04.229} INFO: [INFO] > [OpenGL] Extension ARB_blend_func_extended is supported
****HERE****{07:00:04.229} INFO: [INFO] > [OpenGL] Video memory detected: 0 [MB]!
{07:00:04.302} INFO: [INFO] > [OpenGL] GPU's vendor id: 4098 [0x1002]; GPU's device id: 26607 [0x67ef].
{07:00:04.302} INFO: [INFO] > [OpenGL] Shader binary dir = 4_5_Mesa_18_0_4.
{07:00:04.302} INFO: [INFO] > [OpenGL] GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 4
{07:00:04.302} INFO: [INFO] > [OpenGL] GL_MAX_UNIFORM_BLOCK_SIZE = 65536
{07:00:04.808} INFO: [INFO] > Texture streaming lowest priority distance set to 100m
{07:00:05.372} INFO: [INFO] > [SDL::WindowMode] Current SwapInterval: 0
{07:00:05.372} INFO: [INFO] > [SDL::SetWindowMode] Setting no vsync resulted in: 0 SDL_GetError: Surface doesn't have a colorkey
{07:00:05.372} INFO: [INFO] > [SDL::WindowMode] Current SwapInterval: 0
{07:00:05.428} INFO: [INFO] > [SDL] Resizing window to 3840x2160 f:1 v:0
{07:02:12.818} INFO: [INFO] > Texture streaming buffer set to 400MB
{07:02:12.834} INFO: [INFO] > >>>>> Audio init
{07:02:13.109} INFO: [INFO] > FMOD::Driver: Default Output Device
{07:02:13.225} INFO: [INFO] > FMOD is using (11) output type.
{07:02:13.225} INFO: [INFO] > FMOD Software Format Info:
{07:02:13.225} INFO: [INFO] | Out Sample Rate: <48000>
{07:02:13.225} INFO: [INFO] | Format: <2>
{07:02:13.225} INFO: [INFO] | Out Channels: <2>
{07:02:13.225} INFO: [INFO] | Max Input Channels: <8>
{07:02:13.225} INFO: [INFO] | Bits: <16>
{07:02:13.225} INFO: [INFO] > FMOD Mixer blocksize = 21.33 ms
{07:02:13.225} INFO: [INFO] > FMOD Mixer blocks count = 4
{07:02:13.225} INFO: [INFO] > FMOD Mixer Total buffer size = 85.33 ms
{07:02:13.225} INFO: [INFO] > FMOD Mixer Average Latency = 53.33 ms
{07:02:13.356} INFO: [INFO] > Caught signal 11 (Segmentation fault).
{07:02:13.390} INFO: [INFO] > /usr/lib/libc.so.6(+0x368f0) [0x7fc3d3d9e8f0]
{07:02:13.390} INFO: [INFO] | libengine.so(_ZN12CTextManager10InitializeEv+0x26f) [0x7fc3d58640cf]
{07:02:13.390} INFO: [INFO] | libengine.so(_Z13CreateTextMgrv+0x40) [0x7fc3d5864220]
{07:02:13.390} INFO: [INFO] | libengine.so(_ZN9CRenderer13LoadResourcesEv+0x2c) [0x7fc3d585187c]
{07:02:13.390} INFO: [INFO] | libengine.so(_ZN5CGame10InitializeEPciPvS1_jjP18IProgressIndicator+0x1944) [0x7fc3d53298b4]
{07:02:13.390} INFO: [INFO] | /home/user/.local/share/Steam/steamapps/common/Dying Light/DyingLightGame(main+0xa45) [0x43e315]
{07:02:13.390} INFO: [INFO] | /usr/lib/libc.so.6(__libc_start_main+0xeb) [0x7fc3d3d8b06b]
{07:02:13.390} INFO: [INFO] | /home/user/.local/share/Steam/steamapps/common/Dying Light/DyingLightGame() [0x4425d9]

Yes.
SacBuntChris Dec 20, 2018 @ 7:53pm 
I'm seeing the same issue others are reporting. Screen with crazy colors flashes for a second, then the screen goes black with the white loading line on the bottom that moves to the right, then crashes without any errors. Vega 64, Mesa drivers, Ubuntu 18.10. Tried with the parameters shown and I'm not seeing any difference.

Would love to be able to play the game.

edit: Figured it out, looks like some linux enthusiasts solved the issue for the game developers. Check out the comments here:

https://www.gamingonlinux.com/forum/topic/2766/page=16

You need to download (from the thread) and copy libGL.so.1 to your ~/.local/share/Steam/steamapps/common/Dying Light directory.
Last edited by SacBuntChris; Dec 20, 2018 @ 8:42pm
Frogging101 Jan 19, 2019 @ 11:40am 
I've investigated the issue that causes it to crash when Mesa is compiled with GLVND. Arch compiles with GLVND, maybe other distros too. I'm not sure yet how to fix it at the driver level, but I've made an LD_PRELOAD shim that is easy to compile and mitigates this problem. Details here: https://bugs.freedesktop.org/show_bug.cgi?id=107990#c8
Prof Frog Mar 25, 2019 @ 9:34am 
I can confirm that the SHIM on the FreeDesktop, Comment #8 works for Intel HD Whisky Lake 3x8 GT2 onboad GPU with MESA. Thanks!
Crumbum Mar 25, 2019 @ 6:23pm 
A year and a half later, and still the same problems.
mieLouk Mar 26, 2019 @ 8:31am 
The libGL.x.x.x fix in the gamingonlinux forum (comment #26) fixed it for me at first. On Arch I installed the mesa 19.0 dev together with this fix, till the mesa version in the off-label-dev repo broke my setup. A few weeks later, I think from 18.3.(2?) onwards the game started to work quite well.

There are occasional crashes, but those are also common place in the win version. Every 5 to 6 hours and when doing a special move, stabbing from above with extra force, those crashes happen. Nonetheless, it is very playable :D

Hope you guys finally get a fix.
< >
Showing 16-30 of 36 comments
Per page: 1530 50

Date Posted: May 3, 2017 @ 4:41pm
Posts: 36