Amdvlk bundle available?

Hello,
Trying to find if the amdvlk driver is compatible with clear, mesa/radv works great most of the time but some apps play nicer with amdvlk for whatever reason and I’d like to be able to switch as needed. If someone has already got this to work and my search skills are just weak please point me in the right direction, otherwise I’ll start going down this rabbit hole and let y’all know what I find.

1 Like

Yep, that’s the rabbit hole I’m currently going down, was just hoping someone already invented this wheel.
Ran into a few compiler errors so here are the additional bundles I needed to compile:
dev-utils
devpkg-libX11
devpkg-libxml2

I also added -DBUILD_WAYLAND_SUPPORT=ON to the cmake command and didn’t have any additional compilation issues.

currently looking into icd loader for Clear Linux, might have to build that next as I don’t see it in swupd.
I copied the .so file RedHat style and used the redhat .json file for the icd loader.

Once I get 64 bit completed I’ll try to tackle 32 bit.

edit:
apparently clear uses
/usr/share/vulkan/icd.d/ for the json files

So this seems to work, I did this to test it:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/amd_icd64.json insertappnamehere

Just make sure to copy the .so file and the .json files:
sudo cp <vulkandriver_path>/drivers/xgl/builds/Release64/icd/amdvlk64.so /usr/lib64/
sudo cp <vulkandriver_path>/drivers/AMDVLK/json/Redhat/* /usr/share/vulkan/icd.d/

Those of you following along at home could probably get away with robbing the amdvlk64.so and amd_icd64.json files from the redhat rpm file instead of compiling them and just put them where they go. I needed about 22 GB of space to compile this thing.

For the curious, I tried dota2 at max settings 1080p, on radv it stabilizes at 119 fps with my rx580, with amdvlk it hangs out around 92 fps. This is a completely unfair test as I’m sure the amdvlk driver is compiling all kinds of shaders n stuff under the hood.

No. You shouldn’t modify /usr/lib64

well, if you don’t want to mess with /usr/lib64 you could just modify the amd_icd64.json file and point it to wherever you want to keep your amdvlk64.so file. That’s just where the radeon and intel ones live so it seemed appropriate to me.

For science I tried the amdvlk64.so file from the rpm release, certainly md5 hashed differently than the one I compiled but the performance was about the same.

modifications to /usr/lib64 could be wiped out by swupd