在 Ubuntu 17.10 中创建交换链时,每个 Vulkan 应用程序都会在 RADV 上崩溃

在 Ubuntu 17.10 中创建交换链时,每个 Vulkan 应用程序都会在 RADV 上崩溃

每个 Vulkan 应用程序(包括 LunarG SDK 1.0.61.1 演示)在 Ubuntu 17.10(Wayland 和 X.org)中创建交换链时都会崩溃。立方体演示中的调用堆栈:

#0  0x00007ffff629f924 in ?? () from /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
#1  0x00007ffff62ac695 in ?? () from /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
#2  0x00007ffff629fceb in ?? () from /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so
#3  0x00007ffff798c1ea in terminator_CreateSwapchainKHR () from /home/glaze/Downloads/VulkanSDK/1.0.61.1/x86_64/lib/libvulkan.so.1
#4  0x000055555555a48b in demo_prepare_buffers ()
#5  0x000055555555d51b in demo_prepare ()
#6  0x0000555555560fa0 in main ()

我的 GPU 是 AMD R9 Nano。火山信息没有给出错误并找到验证层和实例和设备扩展:

Instance Extensions     count = 9
        VK_KHR_surface                      : extension revision 25
        VK_KHR_xcb_surface                  : extension revision  6
        VK_KHR_xlib_surface                 : extension revision  6
        VK_KHR_wayland_surface              : extension revision  6
        VK_KHR_get_physical_device_properties2: extension revision  1
        VK_KHR_external_memory_capabilities : extension revision  1
        VK_KHR_external_semaphore_capabilities: extension revision  1
        VK_KHR_get_surface_capabilities2    : extension revision  1
        VK_EXT_debug_report                 : extension revision  8

Device Extensions       count = 16
    VK_KHR_descriptor_update_template   : extension revision  1
    VK_KHR_incremental_present          : extension revision  1
    VK_KHR_maintenance1                 : extension revision  1
    VK_KHR_push_descriptor              : extension revision  1
    VK_KHR_sampler_mirror_clamp_to_edge : extension revision  1
    VK_KHR_swapchain                    : extension revision 68
    VK_AMD_draw_indirect_count          : extension revision  1
    VK_KHR_shader_draw_parameters       : extension revision  1
    VK_KHR_get_memory_requirements2     : extension revision  1
    VK_KHR_dedicated_allocation         : extension revision  1
    VK_KHR_external_memory              : extension revision  1
    VK_KHR_external_memory_fd           : extension revision  1
    VK_KHR_storage_buffer_storage_class : extension revision  1
    VK_KHR_variable_pointers            : extension revision  1
    VK_KHR_external_semaphore           : extension revision  1
    VK_KHR_external_semaphore_fd        : extension revision  1

这是我的环境变量:

export VULKAN_SDK=~/Downloads/VulkanSDK/1.0.61.1/x86_64
export PATH=$VULKAN_SDK/bin:$PATH
export LD_LIBRARY_PATH=$VULKAN_SDK/lib:$LD_LIBRARY_PATH
export VK_LAYER_PATH=$VULKAN_SDK/etc/explicit_layer.d

我的 Vulkan 库配置错误了吗?或者这看起来像是 RADV 错误?

编辑(2017-11-08):根据福罗尼克斯这可能是由 Ubuntu 的 Mir 补丁引起的:

如果您一直尝试使用为 Ubuntu 打包的 RADV Radeon Vulkan 驱动程序但发现它不起作用,则很可能是由 Canonical 的 Mir 支持补丁引起的。

我还无法尝试解决方法(从 PPA 安装驱动程序:),sudo apt-add-repository ppa:paulo-miguel-dias/mesa && sudo apt update && sudo apt dist-upgrade但我会更新这个问题或发布答案,除非其他人可以验证它是否有效。

答案1

Ubuntu 团队今天还发布了 Nvidia 驱动程序更新,修复了一些与 Vulkan 相关的错误。因此,只需尝试更新到 Ubuntu 推出的最新驱动程序,可能就可以正常工作。

答案2

我通过使用 PPA 中的驱动程序使其工作:

sudo apt purge mesa-vulkan-drivers vulkan-utils
sudo apt-add-repository ppa:oibaf/graphics-drivers
sudo apt update && sudo apt install mesa-vulkan-drivers vulkan-utils

根据福罗尼克斯Ubuntu 自己的存储库的驱动程序由于其 Mir 补丁而损坏:

如果您一直尝试使用为 Ubuntu 打包的 RADV Radeon Vulkan 驱动程序但发现它不起作用,则很可能是由 Canonical 的 Mir 支持补丁引起的。

David Airlie(RADV 开发人员)也已发表于博客关于这次破损。

相关内容