My Linux Gaming Setup for Wine, Gallium Nine, RadeonSI

Gallium Nine, RadeonSI, Wine, Wine-Staging in 2016

Info:My blog: http://www.davidgis.fr , Youtube: https://www.youtube.com/channel/UCNtx0psrYTUEYkrr_EmyCPg
Author: David TECHER, a simple Wine contributor, <davidtecher@yahoo.fr>
Date: 2016-04-08
Revision: 099-113303

Note

WineLogo I play/test a couple of native Windows games on Linux using Wine and Open Source Drivers. Unfortunately I have to patch both Mesa and Wine to get them to work with Wine. Since Gallium Nine patches are not included/maintained in Wine-Staging Repo or Official Wine Repo (git) then In December 2014 I took decision to maintain my own versions of both Wine and Mesa so I can play my own games.

warn Everything showned here is quite experimental.

I took decision to maintain this page only for Mesa 11.2 and LLVM 3.8 and Kernel 4.4. I don't plan to upgrade these versions.

Table of contents

1   Gallium Nine ? native Direct3D 9 on Linux?

2   Web Sites and Sources

Git Repo URL
Wine (Official)
Wine-Staging
Wine (iXit Group - Gallium Nine)
Mesa3D (Official)
Mesa3D (iXit Group - Gallium Nine )

3   Mesa 11.2.0 - Release plan

Based on this mail https://lists.freedesktop.org/archives/mesa-announce/2016-January/000197.html then we have the dates listed below

Version Scheduled Date Release Date
Feature freeze/Release candidate 1 19-Feb-2016 22-Feb-2016
Release Candidate 2 26-Feb-2016 29-Feb-2016
Release Candidate 3 04-Mar-2016 07-Mar-2016
Release Candidate 4 ??-???-2016 30-Mar-2016
Final Release 01-Apr-2016 04-Apr-2016

4   Wine-Staging and Gallium Nine (Sources to Download)

All sources are located on mediafire.com

Gallium_Nine-Redirect Wine-Staging-1.7.55_Gallium-Nine_winecfg

Wine-Staging Version Download Comments
1.9.7 Wine-Staging-1.9.7_Gallium-Nine_Steam-Hacks.tar.bz2

Tested for 'Hounds The Last Hope (Steam)'

1.9.6 Wine-Staging-1.9.6_Gallium-Nine_Steam-Hacks.tar.bz2

Tested for 'Hounds The Last Hope (Steam)'

  • Applied patches for wine-staging 1.9.6
  • iXit Repo for Wine: (53 patches) Remerged all latest Gallium nine patches since this repo was refreshed on Saturday 13-Mar-2016
  • iXit Repo for Wine: Applied updated/reworked patches in order to merge both original "Staging Tab" and the other one by "iXit Team" (winecfg)
  • Applied patches from https://aur.archlinux.org/cgit/aur.git/tree/?h=wine-gaming-nine excluding nine-1.9.1.patch not refreshed on 13-Mar-2016
1.9.5 Wine-Staging-1.9.5_Gallium-Nine_Steam-Hacks.tar.bz2

Tested for 'Hounds The Last Hope (Steam)'

  • Applied patches for wine-staging 1.9.5
  • iXit Repo for Wine: (53 patches) Remerged all latest Gallium nine patches since this repo was refreshed on Saturday 13-Mar-2016
  • iXit Repo for Wine: Applied updated/reworked patches in order to merge both original "Staging Tab" and the other one by "iXit Team" (winecfg)
  • Applied patches from https://aur.archlinux.org/cgit/aur.git/tree/?h=wine-gaming-nine excluding nine-1.9.1.patch not refreshed on 13-Mar-2016
1.9.3 Wine-Staging-1.9.3_Gallium-Nine_Steam-Hacks.tar.bz2

Tested for 'Blade and Souls (NCSOFT)'

1.9.2 Wine-Staging-1.9.2_Gallium-Nine_Steam-Hacks.tar.bz2

Tested for 'Hounds the Last Hope'

1.9.1 Wine-Staging-1.9.1_Gallium-Nine_Steam-Hacks.tar.bz2
  • Applied patches for wine-staging 1.9.1
  • Applied patches for Gallium Nine. I updated the patches to merge original "Staging Tab" from wine-staging Team and iXit Team. A couple of patches were not applied so I can build Wine with Gallium on Ubuntu 14.10 32 Bits
  • Applied patches for Steam
  • Applied patch so my webcam Logitech HD Pro C920 can work with Facerig
1.9.0 Wine-Staging-1.9.0_Gallium-Nine_Steam-Hacks.tar.bz2
  • Applied patches for wine-staging 1.9.0
  • Applied patches for Gallium Nine. I updated the patches to merge original "Staging Tab" from wine-staging Team and iXit Team. A couple of patches were not applied so I can build Wine with Gallium on Ubuntu 14.10 32 Bits
  • Applied patches for Steam
  • Applied patch so my webcam Logitech HD Pro C920 can work with Facerig
1.9.0 Wine-Staging-1.9.0_Gallium-Nine_Steam-Hacks_LOL.tar.bz2

Particular version for League Of Legends

  • Applied patches for wine-staging 1.9.0
  • Applied patches for Gallium Nine. I updated the patches to merge original "Staging Tab" from wine-staging Team and iXit Team. A couple of patches were not applied so I can build Wine with Gallium on Ubuntu 14.10 32 Bits
  • Applied patches for Steam
  • Applied patch so my webcam Logitech HD Pro C920 can work with Facerig
1.8.0 Wine-Staging-1.8.0_Gallium-Nine_Steam-Hacks.tar.bz2
  • Applied patches for wine-staging 1.8.0
  • Applied patches for Gallium Nine. I updated the patches to merge original "Staging Tab" from wine-staging Team and iXit Team. A couple of patches were not applied so I can build Wine with Gallium on Ubuntu 14.10 32 Bits
  • Applied patches for Steam
  • Applied patch so my webcam Logitech HD Pro C920 can work with Facerig
1.8.0 rc4 Wine-Staging-1.8rc4_Gallium-Nine_Steam-Hacks.tar.bz2
  • Applied patches for wine-staging 1.8.0 rc4
  • Applied patches for Gallium Nine. I updated the patches to merge original "Staging Tab" from wine-staging Team and iXit Team. A couple of patches were not applied so I can build Wine with Gallium on Ubuntu 14.10 32 Bits
  • Applied patches for Steam
  • Applied patch so my webcam Logitech HD Pro C920 can work with Facerig
1.8.0 rc3 Wine-Staging-1.8-rc3_Gallium-Nine_Steam-Hacks.tar.bz2
  • Applied patches for wine-staging 1.8.0 rc3
  • Applied patches for Gallium Nine. I updated the patches to merge original "Staging Tab" from wine-staging Team and iXit Team. A couple of patches were not applied so I can build Wine with Gallium on Ubuntu 14.10 32 Bits
  • Applied patches for Steam
  • Applied patch so my webcam Logitech HD Pro C920 can work with Facerig
1.8.0 rc2 Wine-Staging-1.8-rc2_Gallium-Nine_Steam-Hacks.tar.bz2
  • Applied patches for wine-staging 1.8.0 rc2
  • Applied patches for Gallium Nine. I updated the patches to merge original "Staging Tab" from wine-staging Team and iXit Team. A couple of patches were not applied so I can build Wine with Gallium on Ubuntu 14.10 32 Bits
  • Applied patches for Steam
1.7.55 Wine-Staging-1.7.55_Gallium-Nine_Steam-Hacks.tar.bz2
  • Applied patches for wine-staging 1.7.55
  • Applied patches for Gallium Nine. I updated the patches to merge original "Staging Tab" from wine-staging Team and iXit Team. A couple of patches were not applied so I can build Wine with Gallium on Ubuntu 14.10 32 Bits
  • Applied patches for Steam
1.7.52 Wine-Staging-1.7.52_GalliumNine.tar.bz2
  • Applied patches for wine-staging 1.7.52
  • Applied patches for Gallium Nine.
1.7.51 Wine-Staging-1.7.51_GalliumNine.tar.bz2
  • Applied patches for wine-staging 1.7.51
  • Applied patches for Gallium Nine.
1.7.48 Wine-Staging-1.7.48_GalliumNine.tar.bz2
  • Applied patches for wine-staging 1.7.48
  • Applied patches for Gallium Nine.
1.7.47 Wine-Staging-1.7.47_GalliumNine.tar.bz2
  • Applied patches for wine-staging 1.7.47
  • Applied patches for Gallium Nine.

5   Mesa patched with Gallium Nine (Sources to Download)

Date Download Comments
07-Apr-2016 Mesa-3D_11.2.0.tar.bz2

Mesa 11.2.0 repatched with latest Gallium Nine patches extracted from iXit Mesa Repo on 07-Apr-2016

  • Mesa Official Repo: https://anongit.freedesktop.org/git/mesa/mesa.git
    • 3 patches are required to backport latest Gallium Nine patches). See below
    • Applied patch '82db518f1519cec9e3842f23455a105e2006afbd': gallium: add external usage flags to resource_from(get)_handle (v2)
    • Applied patch 'd943ac432de1f46cea47bdbf5ffe5365e2aef386': dri: add backbuffer use flag
    • Applied patch '2a529a8ac810b3b40e7a9a071d9544b168928b94): st/nine: specify WINAPI only for i386 and amd64
  • iXit Mesa Repo: https://github.com/iXit/Mesa-3D/
    • Applied the 39 patches extracted on 07-Apr-2016
  • Personal patches:
    • Hounds The Last Hope (Steam): Nine: removed an assert() in src/gallium/state_trackers/nine/iunknown.h. This way the game can quit without crashing.
    • Devilian (Steam): Nine: removed an assert() in src/gallium/state_trackers/nine/nine_shader.c. This way the game can be played.
    • L.A Noire (Steam): Nine: removed an assert() in src/gallium/state_trackers/nine/iunknown.c. This way the game can be played.
30-Mar-2016 Mesa-3D_11.2RC4_01.tar.bz2

Mesa 11.2 RC4 repatched with latest Gallium Nine patches extracted from iXit Mesa Repo on 13-Mar-2106

  • iXit Mesa Repo: 33 patches extracted and repushed for this RC 4

  • Hounds The Last Hope (Steam) -- Wine-Staging 1.9.5 | Gallium Nine
    • Game crashes sometimes while exiting the game. Nine: removed an assert() in src/gallium/state_trackers/nine/iunknown.h to reduce crashes while exiting the game.
    • Game crashes somtimes one specific location in a map for mission 'Operation Code Mecine'
13-Mar-2016 Mesa-3D_11.2RC3_01.tar.bz2

Mesa 11.2 RC3 repatched with latest Gallium Nine patches extrated from iXit Mesa Repo on 13-Mar-2106

  • iXit Mesa Repo: 33 patches extracted and repushed for this RC 3

  • Hounds The Last Hope (Steam) -- Wine-Staging 1.9.5 | Gallium Nine
    • Game crashes sometimes while exiting the game. Nine: removed an assert() in src/gallium/state_trackers/nine/iunknown.h to reduce crashes while exiting the game.
    • Game crashes somtimes one specific location in a map for mission 'Operation Code Mecine'
06-Mar-2016 Mesa-3D_11.2RC2_01.tar.bz2

Mesa 11.2 RC2 repatched with Gallium Nine. Tested for 'Guild Wars 2 (32 Bits)' and 'Hounds the Last Hope'

  • 5 patches extracted/backported from Official Mesa Repo. On 29-Feb-2016 those patches were pushed by Axel Davy on Offical Mesa Repo

  • 11 patches extrated from iXit Repo

  • Guild Wars 2 (32 Bit Client) -- Wine-Staging 1.9.1 | Gallium Nine
    • Game requires more than one minute to be launched. But it works. Tested with R600_DEBUG=sisched with LLVM 3.8 RC3
  • Hounds The Last Hope (Steam) -- Wine-Staging 1.9.3 | Gallium Nine
    • Game crashes sometimes while exiting the game
    • Game crashes on one specific location in a map for mission 'Code Mecine'
13-Feb-2016 Mesa-3D_2016-02-13.tar.bz2

Tested for 'Blade and Soul', 'Hounds the Last Hope', 'Guild Wars 2'

  • commit = f709a0845792540544982740fa47be672825ee8a

  • Applied latest patches from iXit Repo (11 patches). On 13-Feb-2016 13 patches were pushed by Axel Davy on Official Mesa Repo

  • A couple of other patches for Mesa

  • Blade And Souls -- Wine-Staging 1.9.3 | Gallium Nine
    • Installation winetricks -q vcrun2015 vcrun2005 allfonts
  • Guild Wars 2 (32 Bit Client) -- Wine-Staging 1.9.1 | Gallium Nine
    • Nine: reverted patch st-nine-Support-ATI1-ATI2-for-CubeTexture.patch, commit in Mesa Repo on 12-Feb-2016
    • Nine: Once patch above is reverted, then once the button 'Run' (bottom left and corder) is clicked the screen/game is not frozen
  • Hounds The Last Hope (Steam) -- Wine-Staging 1.9.2 | Gallium Nine
  • Devilian (Steam) -- Wine-Staging 1.8 RC3 | Gallium Nine
  • L.A Noire (Steam) -- Wine-Staging 1.9.0 | Gallium Nine
    • Nine: removed an assert() in src/gallium/state_trackers/nine/iunknown.c. This way the game can be played.
10-Feb-2016 Mesa-3D_2016-02-10.tar.bz2

Tested for 'Blade and Soul', 'Hounds the Last Hope'

  • commit = 79d0082c6442d4c1cade1c4a4904c349f8511f4a
  • Applied latest patches from iXit Repo ( 19 patches )
  • Applied a patch to Nine : 'Guild Wars 2' can be played once the 'Run' button ingame is clicked
  • Applied a patch to Nine : 'Hounds the Last Hope' does not crash while exiting the game
  • Reverted a patch for Nine (st-nine-Rework-UpdateTexture-Checks.patch) : 'Hounds the Last Hope' text characters are not aligned.
  • Applied a patch to Nine : 'LA NOIRE' can be played
  • Applied a patch to Nine : 'Devillian' can be played
  • A couple of other patches for Mesa
05-Feb-2016 Mesa-3D_2016-02-05.tar.bz2
  • commit = d8e4908b6386faf7b5d5af8608e9f10b59565d1c
  • Applied latest patches from iXit Repo ( 10 patches ). On 04-Feb-2016 the 46 others were pushed by Axel Davy on Official Mesa Repo
  • Applied a patch to Nine : 'Guild Wars 2' can be played once the 'Run' button ingame is clicked
  • Applied a patch to Nine : 'Hounds the Last Hope' does not crash while exiting the game
  • Applied a patch to Nine : 'LA NOIRE' can be played
  • Applied a patch to Nine : 'Devillian' can be played
  • A couple of other patches for Mesa
04-Feb-2016 Mesa-3D_2016-02-04.tar.bz2
  • commit = bff640b3e09f845ddb5b23136c8f0796098dc23a
  • Applied latest patches from iXit Repo ( 56 patches )
  • Applied a patch to Nine : 'Guild Wars 2' can be played once the 'Run' button ingame is clicked
  • Applied a patch to Nine : 'Hounds the Last Hope' does not crash while exiting the game
  • Applied a patch to Nine : 'LA NOIRE' can be played
  • Applied a patch to Nine : 'Devillian' can be played
  • A couple of other patches for Mesa

6   LLVM 3.8 repatched with AMDGPU SI Scheduler (Sources to Download)

Note

warn In January 2016, Axel Davy pushes a new version for SI Scheduler in Official LLVM Repo. I don't use this new patches. I stay on the old patches

Date Download Comment
13-Feb-2016 llvm-3.8.0rc2.src.tar.bz2

LLVM 3.8 RC2. Tested for 'Guild Wars 2'

  • Patched with old patches provided by Axel Davy. Those patches were in his Github repo in December 2015
  • R600_DEBUG=sisched for Guild Wars 2

7   Quick notes about me

8   My PC

MyPCLeft MyPCFront MyPCRight

8.1   SOFTWARE: OS/Kernel

Component Version Comment
OS Ubuntu 14.10 32 Bits Old version
Linux Kernel 4.4.5 Stable
Xorg Server 1.16.4 Old version
Desktop Environment LXDE  
  • Ubuntu 14.10 is provided with Xorg 1.16.0. Xorg 1.16.0 is the lowest version to be able to use xf86-video-ati supporting DRI/Present. This way Gallium Nine should work.

  • On 05-Feb-2016 I manually upgraded Xorg through 1.16.0 - 1.16.4 ( Version 1.16.0 is the default version provided by Ubuntu 14.10). Commits through 1.16.0 - 1.16.4 can be found at https://cgit.freedesktop.org/xorg/xserver/log/?h=server-1.16-branch

  • To upgrade to Xorg 1.16.4 I used this command:

    ./configure --prefix=/usr/ --enable-glamor --enable-install-setuid --enable-suid-wrapper --disable-systemd-logind \
    --with-xkb-output=/var/lib/xkb --with-log-dir=/var/log \
    --enable-unix-transport --enable-tcp-transport
    

8.2   SOFTWARE: Graphic Drivers

Name Branch Version Git Repo or Download Commit Built
mesa 11.2 11.2.0 git://anongit.freedesktop.org/mesa/mesa e7fb889dcc002f87c316f3cdc6e7907a88c12697 04-Apr-2016
libdrm Devel 2.4.66_git git://anongit.freedesktop.org/mesa/drm ea78c17854ad1b9d155dab66c99777e513943083 30-Mar-2016
xf86-video-intel Devel 2.99.917_git git://anongit.freedesktop.org/xorg/driver/xf86-video-intel 74b755fe0a786d330d121c435d274e2418003581 07-Apr-2016
xf86-video-nouveau Devel 1.1.99_git git://anongit.freedesktop.org/xorg/driver/xf86-video-nouveau b824d36c28124955eda4aced5e637aa75eea4d6c 04-Mar-2016
xf86-video-ati Stable 7.7.0_git git://anongit.freedesktop.org/xorg/driver/xf86-video-ati df6662864b56d1aeeea4c67d9b668e64197afb20 07-Apr-2016
llvm Stable 3.8.0 http://www.llvm.org/releases/3.8.0/   09-Mar-2016
libva Stable 1.6.2 http://www.freedesktop.org/software/vaapi/releases/libva/   11-Feb-2016
  • libva 1.6.1 is required to build Mesa 11.1 and above. That's why I upgraded my libva version. In order to build libva 1.6.2 I used command lines:

    ./configure --prefix=/usr/ --libdir=/usr/lib/i386-linux-gnu/
    make -j4 && make install
    
  • For Xorg (xf86-video-ati driver) I added this file /etc/X11/xorg.conf.d/01-glamor-dri3.conf. Its content is:

    Section "Device"
            Identifier      "RADEONSI"
            Driver          "radeon"
            Option          "DRI"                   "3"
            Option          "AccelMethod"           "glamor"
            Option          "ShadowPrimary"         "on"
            Option          "TearFree"              "on"
    EndSection
    
  • My Mesa sources are tested weekly.

8.3   HARDWARE

Listed in table below are components of my PC

Component Details Vendor/Manufacturer
MotherBoard H87M-E33 (MS-7817) MSI
CPU Intel(R) Core(TM) i5-4430 CPU @ 3.00GHz Intel
RAM 8GB - DIMM DDR3 Synchrone 1600 MHz (0,6 ns) Conexant (Rockwell)
GPU See AMD Cards section below SAPPHIRE
Monitor VS278 (Max Resolution = 1920x1080) ASUS
Webcam HD Pro C920 Logitech

9   AMD Cards ( Gallium Nine | RadeoSI Gallium3D) and its equivalent/similiar card in R7/R9 series

HD 7000 Serie R7 and R9 Serie
HD 7770 R7 250X
HD 7790 R7 260X
HD 7850 R7 265
HD 7870 R9 270X
HD 7950 v2 R9 280
HD 7970 GHz Edition R9 280X

I own

  • R9 290X
  • R9 290
  • R9 280X
  • R7 260X
  • HD 7970
  • HD 6870

10   Build Open Source Drivers (No patch)

Here are the commands I used to build Open Source Drivers without patching. My own sources provided below are already patched.