Bug 109331

Summary: Empire Total War - Graphical Corruption
Product: Mesa Reporter: andrew.m.mcmahon
Component: Drivers/Gallium/radeonsiAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact: Default DRI bug account <dri-devel>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 77449    
Attachments: glxinfo | grep strings
steam system info
Xorg log
Xorg log
dmesg -w
mesa-git glxinfo

Description andrew.m.mcmahon 2019-01-12 15:04:58 UTC
Created attachment 143078 [details]
glxinfo | grep strings

mesa 18.3.1-1
R9 285 (Tonga)

In game menus and other game play elements aren't rendered correctly by default:

There are no special steps required to replicate the issue.

Affects other Linux distributions and other cards:

A known workaround for the problem is to edit:


Changing the value of the following line to zero:

<value name="UsePBOSurfaces" type="integer">1</value>

There doesn't appear to be any downside to this.
Medieval 2 Total War doesn't appear to be affected on my setup.
Unable to test Shogun 2 or Fall of the Samurai as I don't have access to those.
Comment 1 andrew.m.mcmahon 2019-01-12 15:05:38 UTC
Created attachment 143079 [details]
steam system info
Comment 2 andrew.m.mcmahon 2019-01-13 12:39:25 UTC
Created attachment 143084 [details]
Xorg log
Comment 3 andrew.m.mcmahon 2019-01-13 12:40:53 UTC
Created attachment 143085 [details]
Xorg log
Comment 4 andrew.m.mcmahon 2019-01-13 12:41:46 UTC
Created attachment 143086 [details]
dmesg -w
Comment 5 andrew.m.mcmahon 2019-01-13 13:12:00 UTC
I've used apitrace (DEBUGGER="apitrace32 trace" steam steam://rungameid/10500) to capture some trace files. 
I'm able to replay them using apitrace replay [file] so I hope others are too. 

I've uploaded a 7z archive containing a "bugged" trace and a "workaround" trace with their corresponding terminal output:

By complete coincidence the archive happens to be 666MB.
The bugged trace is several gigabytes in size whilst the workaround is a mere 90MB so there must be something funny happening there...
Comment 6 andrew.m.mcmahon 2019-01-13 13:53:27 UTC
One last comment before I leave it to the experts.

Another bug report with Unity 18.04:

If anyone wants to go above and beyond the call of duty then I've uploaded some traces for Medieval 2 here:

I've used the same trick of disabling/enabling PBO surfaces.

Finally what exactly are PBO surfaces? Do I need them? What's the penalty for not using them?
The game seems to trace faster with them off than on.
Are the Linux ports by Feral a bit wonky and/or prone to strange behaviour - or are they generally decent?
Comment 7 andrew.m.mcmahon 2019-01-13 16:35:57 UTC
Created attachment 143088 [details]
mesa-git glxinfo

As a last ditch effort I thought I'd try the latest mesa/llvm that are provided by [llvm-git] and [mesa-git] unofficial repo's.

Unfortunately the issue still occurs.
Comment 8 andrew.m.mcmahon 2019-03-06 19:27:31 UTC
My system has changed somewhat since writing this bug report. 

As all Feral games on STEAM officially support either STEAMOS or Ubuntu; I thought I'd check out xubuntu 18.04 LTS - specifically: https://pastebin.com/f8cTGLSY

The same glitch appears with the current Mesa drivers provided by the distribution (18.2.8)

But using oibaf's ppa:

Mesa related packages are updated to:
Mesa 19.1.0-devel (git-54522d0 2019-03-06 bionic-oibaf-ppa)

And I can no longer reproduce the issue! https://i.imgur.com/VhIylSp.jpg

As I've made no other changes other than switching Mesa packages I can only assume that this has been fixed by an update/commit recently.

Many thanks to everyone who works on Mesa.
In just a few years (since I last tried Debian) my R9 285 has gone from having no support whatever in Linux to being very capable indeed to the point where I no longer require Windows: https://imgur.com/a/keUM4VS https://imgur.com/a/awddkUg

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.