I'm currently trying to run the game Warthunder from Gaijin under Xubuntu 16.04 (HWE) with the open source Radeon driver (r600g) for my AMD Radeon HD 6450 graphics card. The OpenGL version displayed by "glxinfo" is 3.0 (and 3.3 core) with Mesa 12.0.6.
If I run the game, all of the colors are wrong and and there are strange color stripes everywhere (the polygons are drawn OK, so I guess it's a shader problem).
But since my hardware as well as the r600g driver would support OpenGL 4, I overwrote the OpenGL version as well as the GLSL version to 4.1 when launching the game:
MESA_GL_VERSION_OVERRIDE=4.1 MESA_GLSL_VERSION_OVERRIDE=410 %command%
But because I have a "Caicos" chip where only the "hardware-douple-precision-fp64" extensions are missing for OpenGL 4 conformance, I am currently limited to OpenGL 3.3 (though I hope the Radeon developers will implement software emulated double precision support for the older chips as well).
Anyway, the version override improved the rendering a lot: everything was displayed right except the sky, which was jet-black and had some wrong-colored pieces on it. So this seems to be a shader issue again, since the following console error messages were printed out:
EE ../../../../../src/gallium/drivers/r600/r600_state_common.c:798 r600_shader_select - Failed to build shader variant (type=1) -1 (sometimes also -12 here) EE ../../../../../src/gallium/drivers/r600/r600_shader.c:182 r600_pipe_shader_create - translation from TGSI failed! EE ../../../../../src/gallium/drivers/r600/r600_shader.c:3662 r600_shader_from_tgsi - GPR limit exceeded - shader requires 125 registers EE ../../../../../src/gallium/drivers/r600/r600_shader.c:8685 tgsi_endif - if/endif unbalanced in shader
These four messages are repeating a few hundred times. The last error indicates that some parts of the shader code aren't properly coded as well – would be Gaijin's fault here.
The only solution to this problem I found so far is using the proprietary AMD driver – which only works with Ubuntu 15.10 anymore and is about 30-50% slower than the open source driver as well.
What I found in the game's starting log files is a list of the needed OpenGL extensions (the "fp64 double precision"-extensions wasn't listed, as expected) but there were no errors messages.
Could anyone explain to me a possible way to fix this problem, or the best way to upgrade my driver? I know there are some PPA's with the latest drivers, but they didn't change anything when I tested them.