Does your distro not build Mesa with the d3d9 option enabled? Even if you're running the Nvidia binary drivers, you should still be able to compile Wine against the Mesa d3d9 libraries, the Mesa development libraries and the Nvidia drivers can coexist. I have found that on some distros, you have to tell configure where to find the libraries (--with-d3d9-nine-module=<YOUR_PATH_TO_D3DADAPTER9.so.1>). Anyway, figured I would chime in, I managed to get your 'basic' Intel/AMD Wine build from the top post to work with Gallium Nine and my R9 280X. I disabled PBA, so I'm only running with esync and Gallium Nine enabled, but performance is noticeably better, around 10 FPS, and much more stable (~70 FPS in early zones, ~45 FPS in new ones). "Skill lag" is greatly reduced when there are many players on screen. I installed the correct 'standalone' Gallium Nine release for my distro (Fedora 29) directly from iXit. That gets you the necessary DLLs and exe files to link into your Wine build to enable Gallium Nine. I then symlinked them into your Wine build. Something like this: ln -s /lib/wine/ninewinecfg.exe.so ~/wine_gw2_1.6_intel_amd/GW2/lib/wine/ln -s /lib/wine/fakedlls/ninewinecfg.exe ~/wine_gw2_1.6_intel_amd/GW2/lib/wine/fakedllsln -s /lib/wine/d3d9-nine.dll.so ~/wine_gw2_1.6_intel_amd/GW2/lib/wine/ln -s /lib/wine/fakedlls/d3d9-nine.dll ~/wine_gw2_1.6_intel_amd/GW2/lib/wine/fakedllsln -s /lib64/wine/ninewinecfg.exe.so ~/wine_gw2_1.6_intel_amd/GW2/lib64/wine/ln -s /lib64/wine/fakedlls/ninewinecfg.exe ~/wine_gw2_1.6_intel_amd/GW2/lib64/wine/fakedllsln -s /lib64/wine/d3d9-nine.dll.so ~/wine_gw2_1.6_intel_amd/GW2/lib64/wine/ln -s /lib64/wine/fakedlls/d3d9-nine.dll ~/wine_gw2_1.6_intel_amd/GW2/lib64/wine/fakedllsI created a couple of new run scripts that use a new Wine prefix so the above DLLs would make it into the prefix. It may also be possible to somehow copy them into your premade prefix, but I didn't try. I also made a script using the new Wine prefix, but runs ninewinecfg which is necessary to set up the DLL override. Both scripts were just slight variations of your user_run script. After that, just run the script that runs ninewinecfg, check the box, then run the game script.