GpuZelenograd / memtest_vulkan

Vulkan compute tool for testing video memory stability
https://github.com/GpuZelenograd/memtest_vulkan/blob/main/Readme.md
zlib License
262 stars 12 forks source link

Issue with vulkan drivers: loader_icd_scan fails #30

Closed kaeffix closed 4 months ago

kaeffix commented 5 months ago

I tried to run memtest_vulkan on Linux, both with and without root permissions. This is the result I get:

https://github.com/GpuZelenograd/memtest_vulkan v0.5.0 by GpuZelenograd
To finish testing use Ctrl+C
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.204
Available: 
VK_LAYER_VALVE_steam_fossilize_32, VK_LAYER_VALVE_steam_overlay_32, VK_LAYER_VALVE_steam_fossilize_64, VK_LAYER_VALVE_steam_overlay_64, VK_LAYER_MESA_device_select, VK_LAYER_MANGOHUD_overlay, VK_LAYER_INTEL_nullhw, VK_LAYER_MESA_overlay
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_radeon.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_lvp.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_virtio.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_radeon.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_lvp.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_virtio.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_radeon.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_lvp.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_virtio.so.  Skipping ICD JSON.
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_surface_protected_capabilities, VK_KHR_wayland_surface, VK_KHR_xcb_surface, VK_KHR_xlib_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_KHR_display, VK_KHR_get_display_properties2, VK_EXT_acquire_drm_display, VK_EXT_acquire_xlib_display, VK_EXT_direct_mode_display, VK_EXT_display_surface_counter, VK_EXT_swapchain_colorspace

ERROR: loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_radeon.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_lvp.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_virtio.so.  Skipping ICD JSON.
WARNING: terminator_CreateInstance: Failed to CreateInstance in ICD 3.  Skipping ICD.

1: Bus=0x03:00 DevId=0x747E API 1.3.267  v23(0x5C03002)  16GB AMD Radeon RX 7800 XT (RADV NAVI32)
2: Bus=0x12:00 DevId=0x164E API 1.3.267  v23(0x5C03002)  21GB AMD Radeon Graphics (RADV RAPHAEL_MENDOCINO)
3: Bus=0x00:00 DevId=0x0000 API 1.3.267  ver1  62GB llvmpipe (LLVM 15.0.7, 256 bits)
(first device will be autoselected in 8 seconds)   Override index to test:
    ...testing default device confirmed
Loading memory info for selected device index 0...
heap size 31.0GB budget 30.9GB usage  0.0GB flags=(empty)
heap size 16.0GB budget  0.3GB usage  0.0GB flags=DEVICE_LOCAL
Spawned child Child { stdin: None, stdout: None, stderr: None, .. } with PID 43228
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.204
Available: 
VK_LAYER_VALVE_steam_fossilize_32, VK_LAYER_VALVE_steam_overlay_32, VK_LAYER_VALVE_steam_fossilize_64, VK_LAYER_VALVE_steam_overlay_64, VK_LAYER_MESA_device_select, VK_LAYER_MANGOHUD_overlay, VK_LAYER_INTEL_nullhw, VK_LAYER_MESA_overlayNING: terminator_CreateInstance: Failed to CreateInstance in ICD 3.  Skipping ICD.
Load
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_radeon.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_lvp.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_virtio.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_radeon.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_lvp.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_virtio.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_radeon.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_lvp.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_virtio.so.  Skipping ICD JSON.
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_surface_protected_capabilities, VK_KHR_wayland_surface, VK_KHR_xcb_surface, VK_KHR_xlib_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_KHR_display, VK_KHR_get_display_properties2, VK_EXT_acquire_drm_display, VK_EXT_acquire_xlib_display, VK_EXT_direct_mode_display, VK_EXT_display_surface_counter, VK_EXT_swapchain_colorspace

ERROR: loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_radeon.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_lvp.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_intel_hasvk.so.  Skipping ICD JSON.
ERROR | DRIVER: loader_icd_scan: Failed to add ICD JSON /usr/lib/i386-linux-gnu/libvulkan_virtio.so.  Skipping ICD JSON.
WARNING: terminator_CreateInstance: Failed to CreateInstance in ICD 3.  Skipping ICD.
Loading memory info for selected device index 0...
heap size 31.0GB budget 30.9GB usage  0.0GB flags=(empty)
heap size 16.0GB budget  0.3GB usage  0.0GB flags=DEVICE_LOCAL
Runtime error: Failed determining memory budget
Subprocess status exit status: 68 parent_close_requested false
Using in-process testing method with small memory limit 0
Using in-process testing method
Runtime error: Failed determining memory budget

memtest_vulkan: INIT OR FIRST testing failed due to runtime error
  press any key to continue...

You can find the output for vulkaninfo here: vulkaninfo.txt

I have also attached inxi.txt which contains some informations concerning my Linux install and my graphics gathered from the output of inxi -S and inxi -G.

Based on your troubleshooting section, I assume there might be something wrong with my vulkan installation. But as I'm still quite new in the Linux world, I'm not able to identify the issue further.

galkinvv commented 5 months ago

Thanks for reporting. Do you have any other heavy 3D/compute apps running while trying to execute memtest_vulkan?

You overall vulkan installation seems to be fine, but the strange thing preventing memtest_vulkan from running is extremely small memory budget (0.3GB) reported by RADV driver. vulkan_info confirms it. As a consequence memtest_vulkan is unsure what amount of memory to allocate since overallocating graphical memory over budget can lead to bas things like desktop UI lockup. It may be some driver version incompatibility...

As a temporal workaround try running with specifying memory size to test manually (14 GB): ./memtest_vulkan 1 15032385536

Does it work this way?

kaeffix commented 5 months ago

Yes, I was now able to run the test.