If you run games on Steam with radv on AMD, you might want to test ACO! For more details, refer to
this announcement.
Note: things are at an early stage and testing is likely to expose bugs and GPU crashes.
Currently, ACO will only work with Vulkan on GCN 3.0+ AMD cards running against the Mesa radv driver.
Source code:
If you know how to build radv, the testing branch is at the master branch of this repository:
https://github.com/daniel-schuermann/mesaDistribution packages:
Arch LinuxACO is available on AUR as
mesa-aco-git[aur.archlinux.org] and
lib32-mesa-aco-git[aur.archlinux.org].
UbuntuWe're maintaining PPAs for
Ubuntu 18.04[launchpad.net] and
Ubuntu 19.04[launchpad.net]. It's recommended to ppa-purge any other PPAs that include Mesa like oibaf or padoka before testing, and re-add them when testing is complete.
For example, to start testing on Ubuntu 18.04:
sudo add-apt-repository ppa:valve-experimental/mesa-bionic
sudo apt dist-upgrade
To revert back to normal Mesa:
sudo ppa-purge ppa:valve-experimental/mesa-bionic
Fedorahttps://copr.fedorainfracloud.org/coprs/xxmitsu/mesa-aco/Testing instructions:
The testing branch has ACO
enabled by default. To confirm proper installation, it should spew this message to the console whenever an app that uses it is started:
WARNING: Experimental compiler backend enabled. Here be dragons! Incorrect rendering, GPU hangs and/or resets are likely
If it doesn't seem to be taking, check if the application you're trying to run might be 32-bit and need a 32-bit version of radv.
ACO can be disabled with the following environment variable: RADV_PERFTEST=llvm
We'll be tracking issues on this bug tracker in this early stage:
https://github.com/daniel-schuermann/mesa/issuesThe sort of bugs we're looking for:
- Games that don't run at all
- Games that exhibit graphical corruption
- Games that exhibit lower performance
For all issues, a good list of steps before filing an issue would be:
- If it's a new issue since July 29th, odds are it's related to the newly-introduced vertex shader support. RADV_PERFTEST=llvmvs can disable only vertex shaders for triaging purposes. If it looks vertex shader-specific, be sure to include that information in the bug report.
- Double-check the issue is ACO-specific by setting RADV_PERFTEST=llvm
- Look through the repository for potential duplicates of the same issue
Include all relevant details, the title of the game, and complete reproduction steps. For advanced users, a RenderDoc capture of a frame that works with LLVM and is broken with ACO would be ideal to include with bug reports.
Feel free to share any performance comparisons that aren't regressions in
this thread[github.com]. Any performance regression should be filed as its own issue as per the above.
A: GCN 3.0+ only for now, so anything in the Rx 300 series and above should work.
A: radv for now, but we intend to look at RadeonSI once things are farther along.
GCN 1.0+ and future hardware (Navi) are on the TODO list.
Support for OpenGL will maybe come some time.
Specifically use this patchset branch of Mesa imported into the build script bundle.
I'd do it myself but I've been sick and feeling seriously awful.
On the topic of hardware support, 'Rx 300 and up' is a little weird because the R9 390 uses the same generation of GCN as the R9 290 (known as 'Hawaii', and the R9 390 is sometimes known as 'Grenada', other times as 'Hawaii Pro'). As a result, sometimes things meant for the Rx 300 series and up can also work on my R9 290X... And other times, things meant for the Rx 300 series and up can't work on the R9 390, nor on my R9 290X.
So, will this work with my R9 290X?
If I felt better I'd make one myself.
I don't know for R9 290X, but it work on R9 380X. At worst, you shouldn't even lose the display and rolling back is just (hopefully) reinstalling the packages you had to remove to install ACO.
While I don't seems to have better FPS in Dota 2 on Vulkan, The Compute Shaders option doesn't introduce mini freezes anymore (well, had one at loading screen when I first loaded into a game, but then nothing after that).
EDIT: Note that R9 380X is GCN 3rd generation, while R9 290X is GCN 2nd, so as far as I understand that, it worth the test.
Upd: It definitely will not work:
https://github.com/daniel-schuermann/mesa/commit/011859b892981ce9ec5071d84abc9cff693fa216
your card is very hungry
get a new one and it will pay for itself, because it saves you a lot of power