I investigated the issue a bit further, it looks like when an attempt is made to run vulkan it always tries to default to the nvidia icd.
Removing /usr/share/vulkan/icd.d/nvidia_icd.json
technically resolved the issue, however it is not a satisfactory solution. I shouldn’t have to remove the nvidia icd in order to use AMD’s.
On another note when I try to use AMDVLK now I get this error:
$ vkcube
Selected GPU 0: Null hardware (RADV NAVI10), type: DiscreteGpu
Segmentation fault (core dumped)
(Is AMDVLK maybe not compatible with iGPUs?!)
Here’s my ultimate solution:
Add
export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/radeon_icd.x86_64.json:radeon_icd.i686.json:nvidia_icd.json
to .bash_profile
this will effectively set radeon/mesa vulkan as the default for your session.
It doesn’t seem to be quite foolproof (for instance with a game i tried to launch from lutris, it behaved a lot better than before setting this variable (as in it got further in the execution process before it crashed a lot faster too), and setting the vulkan icd loader to radeon manually in lutris solved that problem
By default it was set to the selected value, and setting it to use system default (unspecified) got the same result, but setting it to the AMD RADV option manually allowed me to launch that particular game.
On steam/proton however games would just run correctly on the mesa vulkan, and this seems to be the case for all native applications i tried as well (vkcube and chromium).
After re-enabling the nvidia gpu, prime-run no longer works correctly (e.g. i use prime-run, but vulkan applications run on my radeon gpu) to resolve that issue I edid /usr/bin/prime-run
and put this line in:
VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json
Now I can use prime-run to run things on the nvidia-gpu and everything else will by default run on the AMD gpu as it should.
I’m a bit disappointed that this was not already sorted out with the default settings on manjaro, none of this should have been necessary and I hope mine is a corner case instead of what people can actually expect when running amd igpus on manjaro.