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. You can also buy games using our partner links for GOG and Humble Store.
Testing new Mesa ACO shader compiler for AMD
Page: «8/11»
  Go to:
Linuxwarper Jul 23, 2019
Yes sir. I will repost soon :) Deleted initial post because I want to redo whole process again.
Linuxwarper Jul 23, 2019
SPECS:
RX 580 Nitro 4GB
Intel I7 4770k with 8GB memory
Kde Neon 5.16 with 5.0 Kernel
ppa:paulo-miguel-dias/pkppa

ACO will be second screenshot

The Witcher 3



PREY demo (2017)



THE TALOS PRINCIPLE



Shmerl Jul 23, 2019
btw, you can use Mesa Vulkan HUD for framerate and frametimes.

VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay

The more even are frametimes, the better.

DXVK_HUD can also show frametimes. I use something like:

DXVK_HUD=devinfo,version,fps,gpuload,frametimes,memory
Linuxwarper Jul 23, 2019
Thanks. I think with ACO I am getting 1-3 fps improvements. Prey was tweeted to get major performance boost (17%??) but I was running demo so that could be why. Overall I am pleased with what seems to be noticeably less stuttering. As stated earlier, initial tests between ACO and non ACO was ACO stuttering less and game not freezing on frames for second(s).

EDIT: I am certain frame times with ACO is better, as it's probably reason for stutter reduction. Where do I put those DXVK HUD and Mesa Vulkan Overlay parameters? Putting it in games launch options yielded nothing.
Shmerl Jul 23, 2019
Quoting: LinuxwarperWhere do I put those DXVK HUD and Mesa Vulkan Overlay parameters? Putting it in games launch options yielded nothing.

I put it in the scripts that start my games (since I use DRM-free games, I don't deal with Steam). Not sure how exactly you set up yours.

For example, for Wine/dxvk use case, let's say game's script (start.sh) contains this:

hud=${hud:-false}  # use HUD

if $hud; then
   export DXVK_HUD=devinfo,version,fps,gpuload,frametimes,memory
fi

...
# Your Wine command that starts the game


Then ./start.sh (that I also associate with .desktop launchers) will run it without HUD.

But running it like this will bring HUD up:

hud=true ./start.sh

For non dxvk cases, I wrote a simple wrapper script like this (covers both OpenGL and Vulkan):

gpu_hud.sh
#!/bin/bash

cores=$(nproc)
cores_str="cpu0"

for ((i = 1; i < $cores; i++)); do
   cores_str="${cores_str}+cpu${i}"
done

#### For OpenGL
export GALLIUM_HUD=".dfps:120,frametime,cpu+GPU-load:100=gpu,${cores_str}:100"

#### For Vulkan:
export VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay

"$@" &
disown -h %+


For example your native game has start.sh which launches it. Then run it like:

gpu_hud.sh ./start.sh

To bring up the HUD. You can use the same variable method with that if you modify the launch script.

Basically, the final process should have appropriate environment variables in the end. If you are using Steam, it has some setting in UI for env variables, but it's a mess I suppose to use them flexibly unlike with scripts you directly control.
Linuxwarper Jul 23, 2019
Thanks, I will come back to that when I run a game through GOG. I looked into DXVK on Github, but the parameters did not do anything for Proton. So I searched further and found out from Proton's FAQ page. The only difference between DXVK own parameter seems to be that for Proton you have to add %command% as well. This will be fun to play around with, thanks!
Shmerl Jul 23, 2019
Quoting: LinuxwarperThanks, I will come back to that when I run a game through GOG. I looked into DXVK on Github, but the parameters did not do anything for Proton. So I searched further and found out from Proton's FAQ page. The only difference between DXVK own parameter seems to be that for Proton you have to add %command% as well. This will be fun to play around with, thanks!

Even if you run it through Steam - you can simply launch Steam client itself with such script. Children processes inherit environment variables, so they'll propagate to games that Steam sill launch.
lejimster Jul 30, 2019
FYI, the ACO compiler has just had a major update. It can now handle Vertex shaders, Plagman just updated us on twitter:



Looking good guys :D
Shmerl Jul 31, 2019
ACO is again ahead for TW3 (built latest master branch):

radv/llvm:


radv/aco
Shmerl Aug 1, 2019
I didn't test it, but developers write it's mostly beneficial for lower end hardware. With high end CPU you probably won't notice big gains.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: 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


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.