(9070XT, driver installed by amdgpu-install)
Vulkan is broken, while GLX works.
$ vulkaninfo
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 2. Skipping ICD.
amdgpu: unknown (family_id, chip_external_rev): (152, 81)
ERROR: [../src/amd/vulkan/radv_physical_device.c:1918] Code 0 : failed to initialize winsys (VK_ERROR_INITIALIZATION_FAILED)
ERROR: [Loader Message] Code 0 : setup_loader_term_phys_devs: Call to ICD 3's 'vkEnumeratePhysicalDevices' failed with error 0xfffffffd
ERROR: [Loader Message] Code 0 : setup_loader_tramp_phys_devs: Failed during dispatch call of 'vkEnumeratePhysicalDevices' to lower layers or loader to get count.
ERROR at ./vulkaninfo/vulkaninfo.h:230:vkEnumeratePhysicalDevices failed with ERROR_INITIALIZATION_FAILED
I don’t know if (152, 81) is the 9070XT?
CPU is 7950 (so there is an IGPU and it might be related).
Vulkan was OK with 6800XT.
I swapped 6800XT with 9070XT and used amdgpu-install to install driver.
Ubuntu 22.04.5 LTS
kernel: 6.8.0-65-generic (linux-generic-hwe-22.04)
mesa: 23.2.1
driver installed by amdgpu-install --usecase=graphics
# PowerColor one is 9070XT;
$ lspci -k | grep -A 2 -E "(VGA|3D)"
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 7550 (rev c0)
Subsystem: Tul Corporation / PowerColor Device 2435
Kernel driver in use: amdgpu
--
13:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Device 164e (rev c1)
Subsystem: Gigabyte Technology Co., Ltd Device d000
Kernel driver in use: amdgpu
Vulkan driver file seems to exist and get loaded.
$ strace vulkaninfo 2>&1 | grep amdvlk64
openat(AT_FDCWD, "/opt/amdgpu/lib/x86_64-linux-gnu/amdvlk64.so", O_RDONLY|O_CLOEXEC) = 3
But I have not idea how ICD is picked?
# Apparently the amdgpu-install one
$ cat /etc/vulkan/icd.d/amd_icd64.json
{
"file_format_version": "1.0.0",
"ICD": {
"library_path": "/opt/amdgpu/lib/x86_64-linux-gnu/amdvlk64.so",
"api_version": "1.4.304"
},
"layer": {
"name": "VK_LAYER_AMD_switchable_graphics_64",
"type": "GLOBAL",
"library_path": "/opt/amdgpu/lib/x86_64-linux-gnu/amdvlk64.so",
"api_version": "1.4.304",
"implementation_version": "1",
"description": "AMD switchable graphics layer",
"functions": {
"vkGetInstanceProcAddr": "vk_icdGetInstanceProcAddrSG",
"vkGetDeviceProcAddr": "vk_icdGetDeviceProcAddrSG"
},
"disable_environment": {
"DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1": "1"
}
}
}
# Default mesa one?
$ cat /usr/share/vulkan/icd.d/radeon_icd.x86_64.json
{
"ICD": {
"api_version": "1.3.255",
"library_path": "/usr/lib/x86_64-linux-gnu/libvulkan_radeon.so"
},
"file_format_version": "1.0.0"
}
$ ll /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
-rw-r--r-- 1 root root 10055632 Oct 9 2024 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
Google search hit one thread on archlinux: https://bbs.archlinux.org/viewtopic.php?id=303967
But it is an abandoned question.