web-dev-qa-db-ja.com

Ubuntu 17.10でのスワップチェーン作成で、RADVですべてのVulkanアプリケーションがクラッシュします

LunarG SDK 1.0.61.1デモを含むすべてのVulkanアプリケーションは、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です。 vulkaninfoはエラーを出さず、検証レイヤーとインスタンスおよびデバイス拡張を見つけます:

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のバグのように見えますか?

edit(2017-11-08):Phoronix によると、これはUbuntuのMirパッチが原因である可能性があります:

Ubuntu用にパッケージ化されたRADV Radeon Vulkanドライバーを使用しようとしても機能しない場合は、Mirサポート用のCanonicalのパッチが原因である可能性があります。

回避策(PPAからドライバーをインストールする:Sudo apt-add-repository ppa:paulo-miguel-dias/mesa && Sudo apt update && Sudo apt dist-upgrade)を試すことはできませんでしたが、他の誰かが動作することを確認できない限り、この質問を更新するか、回答を投稿します。

2
SurvivalMachine

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

Phoronix によると、Ubuntu独自のリポジトリのドライバーは、Mirパッチが原因で壊れています。

Ubuntu用にパッケージ化されたRADV Radeon Vulkanドライバーを使用しようとしても機能しない場合は、Mirサポート用のCanonicalのパッチが原因である可能性があります。

David Airlie(RADV開発者)も ブログ この破損について。

0
SurvivalMachine

また、Ubuntuチームは、Vulkan関連のバグを修正するNvidiaドライバーの更新を今日プッシュしました。したがって、Ubuntuがプッシュした最新のドライバーに単純に更新してみてください。

0
Gladen