Check out our Monthly Survey Page to see what our users are running.
  Go to:
Testing new Mesa ACO shader compiler for AMD
lod commented on 22 July 2019 at 10:47 am UTC

GuestIt runs shamelessly brilliant now, I am totally intrigued. After the initial very low shader stutters, the game runs like a charm. FPS is still borked by the game itself, lacking optimization but that is for most windows users as well.

https://www.youtube.com/watch?v=zw7FQNMsbxw
Is it just as slow in Windows?

The_Aquabat commented on 22 July 2019 at 7:43 pm UTC

ShmerlInteresting results. Using aco, vs Mesa master vs latest amdvlk in TW3 with dxvk master, aco was actually behind this time, but slightly.


that confirms what I suspected, there were some improvements in AMDVLK.

Shmerl commented on 22 July 2019 at 8:46 pm UTC

Yes, amdvlk has improved. but that's just for framerate, I didn't measure stutter levels vs radv/aco.

massatt212 commented on 23 July 2019 at 1:25 am UTC

you guys should try AMDGPU pro driver 19.20, shaders compile so fast but some games has graphical bugs like unreal engine 4 games, its almost stutter free

Shmerl commented on 23 July 2019 at 5:12 pm UTC

LinuxwarperMy small tests:

TALOS Principle: 75.6 - 76.4(ACO)
The Witcher 3: 77 - 82 (ACO)
PREY (demo) : 69 - 73 (ACO)

General note: Games stuttered alot without ACO when running for first time or when they had not been played for a while. To a point games would freeze a frame briefly. With ACO the stuttering was noticeably less to say the least.

Please post hardware specs and screenshots with HUDs for better visibility. Thanks!

Linuxwarper commented on 23 July 2019 at 5:16 pm UTC

Yes sir. I will repost soon Deleted initial post because I want to redo whole process again.

Linuxwarper commented on 23 July 2019 at 6:37 pm UTC

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
image
image

PREY demo (2017)
image
image

THE TALOS PRINCIPLE
image
image
image
image

Shmerl commented on 23 July 2019 at 6:41 pm UTC

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 commented on 23 July 2019 at 6:45 pm UTC

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 commented on 23 July 2019 at 8:20 pm UTC

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.

  Go to:

You need to Register and Login to comment, submit articles and more.


Or login with...

Livestreams & Videos
None currently, submit yours here!
See more!
Popular this week
View by Category
Contact
Latest Comments
Latest Forum Posts