E foi lançada a Vulkan 1.3.260 com AMDX_shader_enqueue, e muito mais. Confira as novidades dessa importante atualização.
Vulkan é uma API de computação e gráficos 3D multiplataforma e de baixo overhead anunciada inicialmente na GDC 2015 pela Khronos Group. Ela é uma API de gráficos 3D modernos de padrão aberto e multiplataforma usada por jogos de ponta e aplicativos exigentes.
Inicialmente, a API Vulkan era referida como a “iniciativa OpenGL da nova geração” pela Khronos, mas o uso desses nomes foi descontinuado quando o nome Vulkan foi anunciado.
Agora, antes das férias, há uma nova atualização de especificação da API Vulkan do The Khronos Group, a Vulkan 1.3.260.
Novidades da Vulkan 1.3.260
O Vulkan 1.3.260 foi lançado hoje com alguns esclarecimentos/correções de especificação, bem como duas novas extensões.
As novas extensões com esta atualização semanal para a especificação da API Vulkan são VK_AMDX_shader_enqueue e VK_KHR_maintenance5.
VK_KHR_maintenance5 é a atualização de especificação de manutenção mais recente para Vulkan com uma variedade de recursos menores que são combinados para formar esta extensão para apenas pequenas adições aqui e ali.
O VK_KHR_maintenance5 recebeu contribuições da AMD, Intel, Imagination, Valve e outras organizações.
Entre as mudanças com VK_KHR_maintenance5 estão alguns novos formatos sendo adicionados, módulos de sombreamento obsoletos, garantias mais fortes para propagação de valores de retorno perdidos do dispositivo, novos sinalizadores e propriedades e outros pequenos ajustes.
VK_AMDX_shader_enqueue é uma especificação experimental/provisória elaborada por engenheiros da AMD para permitir que os desenvolvedores enfileirem grupos de trabalho de shader de computação de outros shaders de computação.
O VK_AMDX_shader_enqueue para enfileirar grupos de trabalho de computação de um sombreador está sendo feito para ajudar a atender às necessidades dos mecanismos de jogos modernos. Este documento explica:
“Os aplicativos estão usando cada vez mais renderizadores mais complexos, geralmente incorporando várias passagens de computação que classificam, classificam ou pré-processam os dados de entrada. Essas passagens podem ser usadas para determinar como o trabalho futuro será executado na GPU; mas acionar esse trabalho futuro da GPU requer uma viagem de ida e volta ao host ou passar pela memória do buffer e usar comandos indiretos. As viagens de ida e volta do host incluem necessariamente mais largura de banda e latência do sistema, pois os buffers de comando precisam ser criados e transmitidos de volta à GPU. Comandos indiretos funcionam bem em muitos casos, mas têm pouca flexibilidade quando se trata de determinar o que é realmente despachado; eles devem ser enfileirados com antecedência, sincronizados com pesadas barreiras de API e executados com um único pipeline pré-gravado.”
“Embora a latência possa ser oculta e os comandos indiretos possam funcionar em muitos casos em que latência e largura de banda adicionais não são aceitáveis, desenvolvimentos recentes de mecanismos, como a tecnologia Nanite do Unreal 5, exigem explicitamente a flexibilidade da seleção de shader e baixa latência. Uma solução desejável deve ser capaz de ter a flexibilidade necessária para esses sistemas, mantendo o loop de execução firme na GPU.”
Em vez de seguir a rota de comandos gerados pelo dispositivo NVIDIA (DGC) ou estender a funcionalidade de comandos indiretos, a AMD está buscando essa abordagem de enfileiramento de shader que é explícita e eficiente para as necessidades modernas de mecanismos de jogos.
A lista completa de alterações com a atualização de especificação do Vulkan 1.3.260 de hoje pode ser encontrada no GitHub.
Instalando Vulkan no Linux
Antes de prosseguir com a instalação, É importante fazer sua pesquisa sobre a compatibilidade do Vulkan com sua GPU, pois nem todos os modelos são compatíveis.
Isso é por sua própria conta e você deve acessar o site do fabricante da GPU e consultar as especificações de compatibilidade.
Também é necessário ter os drivers de vídeo estáveis mais recentes em nossa distribuição, onde você pode usar controladores abertos e privados aqui, é uma questão de gosto.
Instalação no Debian
Para aqueles que são usuários do Debian ou qualquer outra distribuição baseada nele, Você deve executar um dos seguintes comandos para instalar o Vulkan em seu sistema.
Para aqueles que são usuários de GPU AMD:
sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-utils
Agora, para aqueles que são usuários de GPU Nvidia:
sudo apt install vulkan-utils
Instalação no Ubuntu e derivados
Aqueles que são usuários do Ubuntu, Linux Mint, Elementary OS ou qualquer outro derivado do Ubuntu. Eles podem realizar a instalação de uma forma bastante semelhante ao Debian, só que aqui usaremos repositórios para isso.
Primeiro para quem quer que seja Os usuários da GPU AMD devem adicionar o seguinte repositório:
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
sudo apt upgrade
Posteriormente instalei com:
sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-utils
Agora para quem Os usuários da GPU Nvidia apenas adicionam este repositório:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt upgrade
E então instalamos com:
sudo apt install nvidia-graphics-drivers-396 nvidia-settings vulkan vulkan-utils
Instalação no Fedora
Para aqueles que são usuários do Fedora e também para distribuições derivadas dele. Você pode instalar a API Vulkan em seu sistema seguindo as instruções de acordo com sua GPU.
Aqueles com GPUs AMD devem executar o seguinte comando:
sudo dnf install vulkan vulkan-info
Os usuários com GPUs Nvidia devem executar o seguinte no terminal:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
E mais tarde, para instalar a API gráfica Vulkan, vamos executar o seguinte no terminal:
sudo dnf install xorg-x11-drv-nvidia akmod-nvidia vulkan vulkan-tools
Instalação no openSUSE
No caso de quem é usuário de qualquer versão do openSUSE, vamos instalar a API Vulkan executando o seguinte no terminal.
Usuários de GPU AMD:
sudo zypper in vulkan libvulkan1 vulkan-utils mesa-vulkan-drivers
Usuários de GPU Nvidia:
sudo zypper in vulkan libvulkan1 vulkan-utils
Instalação em Arch Linux e derivados
Finalmente, para aqueles que são usuários do Arch Linux, Manjaro Linux, Antergos ou qualquer outro derivado do Arch Linux, eles poderão instalar esta API da seguinte maneira.
No caso específico desta distribuição Linux, você deve saber que a instalação dos drivers de vídeo de suas GPUs é um pouco diferente do que pode ser feito em outras distribuições.
Como você sabe, no caso das GPUs AMD, existem pacotes Radeon ou AMDGPU Pro, então aqui temos várias opções para a API Vulkan.
Primeiro, para aqueles que possuem GPUs Intel, eles irão instalar o seguinte:
sudo pacman -S vulkan-intel
Agora, para usuários de GPU AMD, mas com os drivers Radeon, instale o seguinte:
sudo pacman -S vulkan-radeon
No outro caso da AMD, mas usando os drivers AMDGPU Pro, isso será feito a partir do AUR.
yay -S amdgpu-pro-vulkan
Finalmente, para verificar a instalação, executamos:
glxinfo | grep -i vulkan