Bug 1051767

Summary: Installing Mesa-libVulkan-devel causes Vulkan to crash on Intel hardware (due to dependencies)
Product: [openSUSE] openSUSE Tumbleweed Reporter: Thiago Macieira <thiago>
Component: X.OrgAssignee: Michal Srb <msrb>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <xorg-maintainer-bugs>
Severity: Normal    
Priority: P5 - None CC: msrb
Version: Current   
Target Milestone: ---   
Hardware: x86-64   
OS: Linux   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Thiago Macieira 2017-08-01 23:27:29 UTC
If you ask to install Mesa-libVulkan-devel, it will install the libvulkan_radeon package:

# zypper in libvulkan_intel Mesa-libVulkan-devel
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 3 NEW packages are going to be installed:
  Mesa-libVulkan-devel libvulkan_intel libvulkan_radeon

3 new packages to install.
Overall download size: 1.5 MiB. Already cached: 0 B. After the operation, additional 4.1 MiB will be used.

Once that package is installed, libvulkan will load it, even on Intel hardware, and will thus crash:

$ gdb vulkaninfo
(gdb) r
Starting program: /usr/bin/vulkaninfo 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
===========
VULKAN INFO
===========

Vulkan API Version: 1.0.41

INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_core_validation.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_object_tracker.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_parameter_validation.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_swapchain.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_threading.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_unique_objects.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_core_validation.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_object_tracker.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_parameter_validation.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_swapchain.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_threading.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/explicit_layer.d/VkLayer_unique_objects.json, version "1.0.0"
INFO: [loader] Code 0 : Found ICD manifest file /usr/share/vulkan/icd.d/intel_icd.x86_64.json, version "1.0.0"
INFO: [loader] Code 0 : Found ICD manifest file /usr/share/vulkan/icd.d/radeon_icd.x86_64.json, version "1.0.0"

Program received signal SIGSEGV, Segmentation fault.
0x000000000001f436 in ?? ()
(gdb) bt
#0  0x000000000001f436 in ?? ()
#1  0x00007fffede683f2 in radv_lookup_entrypoint (name=<optimized out>) at radv_entrypoints.c:833
#2  0x00007ffff797f3e9 in loader_scanned_icd_add (api_version=4194307, 
    filename=0x7fffffffd0a0 "/usr/lib64/libvulkan_radeon.so", icd_tramp_list=0x5555557c2bb0, inst=0x5555557c2b70)
    at /usr/src/debug/Vulkan-LoaderAndValidationLayers-1.0.41/loader/loader.c:1565
#3  loader_icd_scan (inst=inst@entry=0x5555557c2b70, icd_tramp_list=icd_tramp_list@entry=0x5555557c2bb0)
    at /usr/src/debug/Vulkan-LoaderAndValidationLayers-1.0.41/loader/loader.c:3177
#4  0x00007ffff798506b in vkCreateInstance (pCreateInfo=0x7fffffffd660, pAllocator=0x0, pInstance=0x7fffffffd6b0)
    at /usr/src/debug/Vulkan-LoaderAndValidationLayers-1.0.41/loader/trampoline.c:329
#5  0x00005555555558c2 in AppCreateInstance (inst=0x7fffffffd6b0)
    at /usr/src/debug/Vulkan-LoaderAndValidationLayers-1.0.41/demos/vulkaninfo.c:667
#6  main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/Vulkan-LoaderAndValidationLayers-1.0.41/demos/vulkaninfo.c:1454

Please remove the dependency. The crashes have been reported to both libvulkan[1] and libvulkan_radeon[2].
[1] https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/1978
[2] https://bugs.freedesktop.org/show_bug.cgi?id=102010

While you're at it, please do the same for the DRM drivers.

# zypper rm libdrm_radeon1-2.4.82-1.1.x86_64
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 63 packages are going to be REMOVED:
  Mesa Mesa-devel Mesa-dri-devel Mesa-libEGL-devel Mesa-libGL-devel Mesa-libGL1 Mesa-libGLESv1_CM-devel Mesa-libGLESv2-devel
  Mesa-libGLESv3-devel Mesa-libva cairo-devel glu-devel google-chrome-stable gtk2-devel gtk3-devel kdm libdrm-devel
  libdrm_radeon1 libvdpau_r600 libvdpau_radeonsi lsb opencv-devel pango-devel xf86-input-evdev xf86-input-joystick
  xf86-input-keyboard xf86-input-libinput xf86-input-mouse xf86-input-synaptics xf86-input-vmmouse xf86-input-void
  xf86-input-wacom xf86-video-amdgpu xf86-video-ark xf86-video-ast xf86-video-ati xf86-video-chips xf86-video-cirrus
  xf86-video-dummy xf86-video-fbdev xf86-video-glint xf86-video-i128 xf86-video-intel xf86-video-mach64 xf86-video-mga
  xf86-video-neomagic xf86-video-nv xf86-video-qxl xf86-video-r128 xf86-video-savage xf86-video-siliconmotion xf86-video-sis
  xf86-video-sisusb xf86-video-tdfx xf86-video-tga xf86-video-trident xf86-video-vesa xf86-video-vmware xf86-video-voodoo
  xorg-x11-devel xorg-x11-driver-input xorg-x11-driver-video xorg-x11-server

63 packages to remove.
Comment 1 Michal Srb 2017-08-02 07:17:27 UTC
I can reproduce it. The dependency is not at fault (although I am not sure if it is necessary either), it should not crash just because the package is installed. As you said, either libvulkan shouldn't load it, or it should bail out gracefully. Investigating...
Comment 2 Michal Srb 2017-08-02 09:08:38 UTC
This is actually duplicate of older bug - continuing in there.

*** This bug has been marked as a duplicate of bug 1022156 ***