Todo aplicativo Vulkan trava no RADV na criação de swapchain no Ubuntu 17.10

2

Cada aplicação Vulkan, incluindo as demos LunarG SDK 1.0.61.1, falha na criação de swapchain no Ubuntu 17.10 (Wayland e X.org). Callstack da demonstração do cubo:

#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 ()

Minha GPU é o AMD R9 Nano. vulkaninfo não fornece erros e encontra as camadas de validação e as extensões de instância e dispositivo:

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

Aqui estão minhas variáveis de ambiente:

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

As minhas bibliotecas Vulkan estão configuradas incorretamente ou isso parece um bug RADV?

edit (2017-11-08): De acordo com Phoronix isso pode ser causado por patches Mir do Ubuntu:

  

Se você estiver tentando usar o driver RADV Radeon Vulkan,   empacotado para o Ubuntu, mas acha que não está funcionando, as chances são de que isso   pelos patches da Canonical para suporte ao Mir.

Não consegui testar a solução alternativa (instalar drivers de um PPA: sudo apt-add-repository ppa:paulo-miguel-dias/mesa && sudo apt update && sudo apt dist-upgrade ), mas atualizarei essa pergunta ou postarei uma resposta depois que eu fizer, a menos que outra pessoa possa verificar se ela funciona.

    
por SurvivalMachine 21.10.2017 / 13:53

2 respostas

0

Eu consegui trabalhar usando drivers de um 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

De acordo com o Phoronix do repositório do próprio Ubuntu está quebrado por causa de seus patches Mir:

  

Se você estiver tentando usar o driver RADV Radeon Vulkan,   empacotado para o Ubuntu, mas acha que não está funcionando, as chances são de que isso   pelos patches da Canonical para suporte ao Mir.

David Airlie (desenvolvedor RADV) também blogged sobre essa quebra.

    
por SurvivalMachine 09.11.2017 / 19:53
0

A equipe do Ubuntu também fez uma atualização do driver da Nvidia que corrige alguns bugs relacionados ao Vulkan. Então, basta tentar simplesmente atualizar para os drivers mais recentes que o Ubuntu já pode funcionar.

    
por Gladen 09.11.2017 / 20:38