Patreon Logo Support us on Patreon to keep GamingOnLinux alive. This ensures all of our main content remains free for everyone. Just good, fresh content! Alternatively, you can donate through PayPal Logo PayPal. You can also buy games using our partner links for GOG and Humble Store.
Title: Testing new Mesa ACO shader compiler for AMD
Page: 2/5
  Go to:
Shmerl 4 Jul 2019
Quoting: sr_ls_boyWhat mesa version is this ACO shader compiler forked from. Is it 19.1.X or the unreleased 19.2?
Doing comparisons against the wrong mesa version won't mean anything.
They probably rebase it on Mesa master periodically. But you can compare it to itself. I.e. simply disable ACO using environment variable, and it will use the default llvm path:

RADV_PERFTEST=llvm

So no need to build stock Mesa separately for testing.
dubigrasu 4 Jul 2019
Short test of Rise of the Tomb Raider with Proton, Very High settings:

Average FPS, LLVM > ACO
Spine of the Mountain: 84.1 > 88.8
Prophets Tomb: 66.0 > 67.4
Geothermal Valley: 65.1 > 66.4

And here are the frametimes (all three tests combined):

External Media: You need to be logged in to view this.


Clearly better frametimes for ACO.
Shmerl 4 Jul 2019
How did you build the graph? And did you collect the data using Mesa Vulkan overlay log?
sr_ls_boy 4 Jul 2019
Curious, the last tag in the ACO repository is:
Date: Mon Jan 29 11:27:18 2018 +0000
Update version to 18.0.0-rc3

The developer must have been working on this for a while. They have
mesa's commits but none of the tags.
dubigrasu 4 Jul 2019
Quoting: ShmerlHow did you build the graph? And did you collect the data using Mesa Vulkan overlay log?
The game itself dumps the frametimes in a folder. The graph is built with gnumeric.
Shmerl 4 Jul 2019
Quoting: sr_ls_boyThe developer must have been working on this for a while. They have
mesa's commits but none of the tags.
They must have been working on it for a while. Making a compiler takes time.
tuubi 4 Jul 2019
User Avatar
Quoting: Shmerl
Quoting: sr_ls_boyThe developer must have been working on this for a while. They have
mesa's commits but none of the tags.
They must have been working on it for a while. Making a compiler takes time.
According to [the announcement](https://lists.freedesktop.org/archives/mesa-dev/2019-July/221006.html) on the Mesa mailing list, "a little over one year". That's actually not that long considering the size of the team and the nature of the project.
Shmerl 4 Jul 2019
Quoting: tuubiAccording to [the announcement](https://lists.freedesktop.org/archives/mesa-dev/2019-July/221006.html) on the Mesa mailing list, "a little over one year". That's actually not that long considering the size of the team and the nature of the project.
Yeah, though it's not ready to be merged yet, it's in good shape to be tested.
sr_ls_boy 4 Jul 2019
So far, I haven't found a title that Mesa/ACO has a problem with.
I once was able to run 'Outlast 2' but it won't work anymore and I
don't know way. I'll keep looking.
dubigrasu 4 Jul 2019
Quoting: sr_ls_boySo far, I haven't found a title that Mesa/ACO has a problem with.
I once was able to run 'Outlast 2' but it won't work anymore and I
don't know way. I'll keep looking.
Have you tried Dying Light?
sr_ls_boy 4 Jul 2019
Quoting: dubigrasuHave you tried Dying Light?
I just did and the colors looked almost washed out. It almost looked like it was Black and White.
dubigrasu 5 Jul 2019
Quoting: sr_ls_boy
Quoting: dubigrasuHave you tried Dying Light?
I just did and the colors looked almost washed out. It almost looked like it was Black and White.
Ah, thanks. Similar with what I found.
Shmerl 5 Jul 2019
Quoting: GuestSo I tried compiling Mesa myself for the first time. Before I used the ppa referenced in the news article on GoL. I used your script @Shmerl but that did not work. I built the newest version of meson 0.51 but it kept looping endlessly on regenerating build files. Then I figured it is due to the compiler option meson --native-files and I deleted that. After that everything compiled and I tried launching vulkaninfo and games with LD_LIBRARY_PATH and VK_ICD_FILENAMES referenced to the build but all die saying bad driver.
What am I missing?
Just FYI, the script assumes you place your built Mesa in /opt/mesa-${mesa_branch} (which is normally /opt/mesa-master).

My custom Mesa deployment looks like this:

/opt/mesa-master
/opt/mesa-master/x86_64
/opt/mesa-master/x86_64/libglapi.so.0.0.0
/opt/mesa-master/x86_64/libglapi.so.0
/opt/mesa-master/x86_64/libglapi.so
/opt/mesa-master/x86_64/libVkLayer_MESA_overlay.so
/opt/mesa-master/x86_64/libvulkan_radeon.so
/opt/mesa-master/x86_64/libGLX_mesa.so.0.0.0
/opt/mesa-master/x86_64/libGLX_mesa.so.0
/opt/mesa-master/x86_64/libGLX_mesa.so
/opt/mesa-master/x86_64/libgbm.so.1.0.0
/opt/mesa-master/x86_64/libgbm.so.1
/opt/mesa-master/x86_64/libgbm.so
/opt/mesa-master/x86_64/libEGL_mesa.so.0.0.0
/opt/mesa-master/x86_64/libEGL_mesa.so.0
/opt/mesa-master/x86_64/libEGL_mesa.so
/opt/mesa-master/x86_64/pkgconfig
/opt/mesa-master/x86_64/pkgconfig/dri.pc
/opt/mesa-master/x86_64/pkgconfig/gbm.pc
/opt/mesa-master/x86_64/pkgconfig/egl.pc
/opt/mesa-master/x86_64/pkgconfig/gl.pc
/opt/mesa-master/x86_64/radeonsi_dri.so
/opt/mesa-master/x86_64/radeonsi_drv_video.so
/opt/mesa-master/share
/opt/mesa-master/share/vulkan
/opt/mesa-master/share/vulkan/icd.d
/opt/mesa-master/share/vulkan/icd.d/radeon_icd.x86_64.json
/opt/mesa-master/share/vulkan/explicit_layer.d
/opt/mesa-master/share/vulkan/explicit_layer.d/VkLayer_MESA_overlay.json
/opt/mesa-master/share/drirc.d
/opt/mesa-master/share/drirc.d/00-mesa-defaults.conf
/opt/mesa-master/share/glvnd
/opt/mesa-master/share/glvnd/egl_vendor.d
/opt/mesa-master/share/glvnd/egl_vendor.d/50_mesa.json


I recommend placing it there, since configured paths are written in the built files.

You can change the location in the build script if you want to place it somewhere else.
sr_ls_boy 5 Jul 2019
I managed to get Outlast 2 to work with vanilla wine without using the staging patches.

+
EDIT: Far Cry 4 is another title that can no longer work if the staging patches are
applied.
sr_ls_boy 6 Jul 2019
I just tried Mad Max with the backend branch/commit d271fd and it worked.
medicalcannabis 6 Jul 2019
This was trivial to set up in Gentoo. I took the existing mesa-9999 ebuild, copied it to mesa-9999-r1.ebuild and changed the git address in the file to point at ACO's repo. Once I recompiled (and keyworded llvm/clang v8 to ~amd64), everything worked.

On AMD Raven Ridge hardware (Ryzen 5 2400G), this has been a night-and-day difference. Games like No Man's Sky (beta Vulkan renderer) would crash after loading all shaders due to the lag required to build motion blur on the fly. This not only solved that issue, but I'm able to do 30fps with all settings maxed, when before it was a complete slideshow. On emulators such as Cemu and Dolphin, shaders are compiling fast enough that I don't even have to run through each Mario Kart 8 level once to build a sufficient shader cache.
dubigrasu 7 Jul 2019
Shadow of the Tomb Raider tested with Proton, Highest settings:

Average FPS:
LLVM = 50.1
ACO = 52.8

Not that much of a difference in terms of average FPS, but the ACO frametimes still look better:

External Media: You need to be logged in to view this.
sr_ls_boy 10 Jul 2019
Quoting: Guest
Quoting: sr_ls_boyI just tried Mad Max with the backend branch/commit d271fd and it worked.
Still not working for me, I am running the vulkan beta tho of it, dunno theorethically it should work.
I've should have thought of that. I'll try it out. I was indeed using the games default opengl renderer.
gort818 10 Jul 2019
Star Citizen gives me a gpu hang on my vega 56, I created an issue for it https://github.com/daniel-schuermann/mesa/issues/70
Shmerl 12 Jul 2019
Quoting: GuestSo I tried compiling Mesa myself for the first time. Before I used the ppa referenced in the news article on GoL. I used your script @Shmerl but that did not work. I built the newest version of meson 0.51 but it kept looping endlessly on regenerating build files. Then I figured it is due to the compiler option meson --native-files and I deleted that. After that everything compiled and I tried launching vulkaninfo and games with LD_LIBRARY_PATH and VK_ICD_FILENAMES referenced to the build but all die saying bad driver.
What am I missing?
It's actually a bug in Meson 0.51.1. See: https://github.com/mesonbuild/meson/issues/5505

It's fixed in Meson master, but 0.51.1 is broken with temporary native config files the way I was using it.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon Logo Patreon. Plain Donations: PayPal Logo PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register