Vulkan (Español)

From ArchWiki
Esta traducción de Vulkan fue revisada el 2024-02-04. Si existen cambios puede actualizarla o avisar al equipo de traducción.

Este artículo o sección necesita ser traducido.

Notas: Partial translation from:Vulkan (Discusión en Talk:Vulkan (Español)#)

Desde Wikipedia (Ingles):

Vulkan es una API de computación y gráficos 3D multiplataforma de baja sobrecarga. Lanzada por primera vez en 2016, es la sucesora de OpenGL (Español).

Más información en la pagina web de Khronos.

Instalación

Note: En gráficos híbridos (NVIDIA Optimus/AMD Dynamic Switchable Graphics):

Para ejecutar una aplicación Vulkan, necesitarás instalar el paquete vulkan-icd-loader (y lib32-vulkan-icd-loader si también quieres ejecutar aplicaciones de 32 bits), así como controladores Vulkan para tu(s) tarjeta(s) gráfica(s). Hay varios paquetes que proporcionan un vulkan-driver:

Los siguientes son rasterizadores de software, para que pueda utilizarlo en dispositivos que no proporcionan soporte Vulkan.

Para el desarrollo de aplicaciones Vulkan, instale vulkan-headers, y opcionalmente vulkan-validation-layers, vulkan-man-pagesAUR y vulkan-tools (puedes encontrar la herramienta vulkaninfo aquí).

Verificación

Para ver qué implementaciones de Vulkan están instaladas actualmente en tu sistema, utiliza el siguiente comando:

$ ls /usr/share/vulkan/icd.d/

Para asegurarte de que Vulkan funciona con tu hardware, instale vulkan-tools y use el comando vulkaninfo para obtener información relevante sobre su sistema. Si obtienes información sobre tu tarjeta gráfica, sabrás que Vulkan está funcionando.

$ vulkaninfo

Alternación

Alternar entre dispositivos

En sistemas con múltiples GPUs puede que necesites forzar el uso de una GPU específica. vkdevicechooserAUR proporciona una forma sencilla de hacerlo. Se instalará en el directorio de capas Vulkan del sistema, /usr/share/vulkan/implicit_layer.d/.

Para ejecutar una aplicación Vulkan forzando el uso de un dispositivo específico, lánzala con estas variables de entorno:

$ ENABLE_DEVICE_CHOOSER_LAYER=1 VULKAN_DEVICE_INDEX=device_index

Sustituye device_index por el GPU id del dispositivo deseado según vulkaninfo (sin el layer activado).

Note: Some applications (like Steam) may alter the device indexes.

Alternar entre controladores AMD

En los sistemas AMD, es válido tener varios controladores Vulkan instalados a la vez, y puede ser conveniente cambiar entre ellos.

Selección mediante variable de entorno

Note: Este método no permite seleccionar los controladores cerrados AMDVLK

A partir de amdvlk 2021.Q3.4, se ha implementado una nueva lógica de intercambio que establece AMDVLK como valor predeterminado y exige que o bien

  • establezca AMD_VULKAN_ICD=RADV para cambiar del valor por defecto AMDVLK,
  • o configure globalmente DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1 para volver a activar el método de carga ICD que se indica a continuación.

Cuando DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1, puede elegir su controlador preferido configurando la variable de entorno. VK_DRIVER_FILES. Por ejemplo, para ejecutar Steam con el controlador RADV se hace lo siguiente

$ VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json steam

Para evitar fallos con juegos de 32 bits, es posible asignar la variante de 32 bits y la variante de 64 bits a la variable de entorno.

Selección mediante prefijos AMD Vulkan

AMD Vulkan Prefixes es un script para cambiar entre las tres implementaciones de Vulkan. Instale amd-vulkan-prefixesAUR, y antepone tu aplicación con el prefijo que quieras. Los ejecutables proporcionados son vk_radv, vk_amdvlk, y vk_pro. Por ejemplo, para utilizar los controladores cerrados AMDVLK:

$ vk_pro command

Rendimiento del software

Este artículo o sección necesita ser traducido.

Notas: Mesa is only available on English (Discusión en Talk:Vulkan (Español)#)

Puedes instalar el rasterizador Vulkan por software conocido como lavapipe, por ejemplo para depurar problemas de hardware: vulkan-swrast (o lib32-vulkan-swrast para la versión de 32 bits).

El siguiente ejemplo muestra la ejecución de vulkaninfo con las variables de entorno necesarias para forzar un renderizado por software completo para Vulkan y OpenGL (con __GLX_VENDOR_LIBRARY_NAME=mesa asegurando que el comando también funciona para usuarios que utilizan PRIME):

$ LIBGL_ALWAYS_SOFTWARE=1 __GLX_VENDOR_LIBRARY_NAME=mesa VK_DRIVER_FILES=/usr/share/vulkan/icd.d/lvp_icd.i686.json:/usr/share/vulkan/icd.d/lvp_icd.x86_64.json vulkaninfo

Base de datos de hardware Vulkan

La "Vulkan Hardware Database" proporciona combinaciones GPU/driver reportadas por los usuarios. Es posible proporcionar información propia utilizando vulkan-caps-viewer-waylandAUR o vulkan-caps-viewer-x11AUR.

Solución de Problemas

Este artículo o sección necesita ser traducido.

Notas: Untranslated section (Discusión en Talk:Vulkan (Español)#)

NVIDIA - vulkan is not working and can not initialize

Check if you have any other vulkan driver installed, it may prevent NVIDIA's vulkan driver from being detected.

Alternatively set the environment variable VK_DRIVER_FILES to /usr/share/vulkan/icd.d/nvidia_icd.json.

If you have a dual-graphics system, like NVIDIA Optimus, ensure that your system is using the graphics card that you installed Vulkan drivers for.

This article or section needs expansion.

Reason: optimus-manager is just one of several utilities for NVIDIA Optimus. (Discuss in Talk:Vulkan (Español))

This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.

Reason: Command in code block requires a prompt symbol. (Discuss in Talk:Vulkan (Español))
optimus-manager --status
Optimus Manager (Client) version 1.4

Current GPU mode : nvidia
GPU mode requested for next login : no change
GPU at startup : integrated
Temporary config path: no

No device for the display GPU found. Are the intel-mesa drivers installed?

Try to list both the intel_icd and primus_vk_wrapper configurations in VK_DRIVER_FILES

export VK_DRIVER_FILES=/usr/share/vulkan/icd.d/intel_icd.x86_64.json:/usr/share/vulkan/icd.d/nv_vulkan_wrapper.json

AMDGPU - ERROR_INITIALIZATION_FAILED after vulkaninfo

If after running vulkaninfo on AMD card from GCN1 or GCN2 family you got error message like:

ERROR at /build/vulkan-tools/src/Vulkan-Tools-1.2.135/vulkaninfo/vulkaninfo.h:240:vkEnumerateInstanceExtensionProperties failed with ERROR_INITIALIZATION_FAILED

Then check if you have correctly enable support for this models of graphics cards (AMDGPU#Enable Southern Islands (SI) and Sea Islands (CIK) support).

One of possibility to check if gpu drivers are correctly loaded is lspci -k, after running this command check kernel driver of your gpu. It should be amdgpu.

$ lspci -k
...
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM]
	Subsystem: Gigabyte Technology Co., Ltd Device 226c
	Kernel driver in use: amdgpu
	Kernel modules: radeon, amdgpu
...

Some forum threads about this problem: [3] [4]

AMDGPU - Hangs when playing DirectX Vulkan games

Radeon-Vulkan seems to cause driver and/or GPU hangs when playing some games with usage of DirectX Vulkan.

kernel: [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* Waiting for fences timed out!
kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* ring gfx_0.0.0 timeout, signaled ..., emitted ...
kernel: [drm:amdgpu_job_timedout [amdgpu]] *ERROR* Process information: process ... pid ... thread dxvk-submit pid
...

Switching to or enabling AMDVLK seems to fix the problem as discovered in BBS#275991.

AMDGPU - Crashes with DirectX Vulkan games

AMDVLK has been reported as causing crashes by multiple users (see BBS#284118, BBS#283008, BBS#274737): switching to or enabling the Radeon-Vulkan driver fixes the issue.

AMDGPU - Vulkan applications launch slowly

If you install cuda, you might find Vulkan applications, for example, Chromium, launch slowly. It's because nvidia-utils provides an Vulkan driver and Vulkan would try nvidia drivers before radeon drivers. To solve it, set the environment variable VK_DRIVER_FILES to /usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json.

AMDGPU - Found no drivers!

When encountering Found no drivers!:

$ vulkaninfo
WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Failed to CreateInstance in ICD 0.  Skipping ICD.
ERROR: [Loader Message] Code 0 : terminator_CreateInstance: Found no drivers!
Cannot create Vulkan instance.
This problem is often caused by a faulty installation of the Vulkan driver or attempting to use a GPU that does not support Vulkan.
ERROR at /usr/src/debug/vulkan-tools/Vulkan-Tools-1.3.269/vulkaninfo/./vulkaninfo.h:688:vkCreateInstance failed with ERROR_INCOMPATIBLE_DRIVER

AMD has regularly dropped support for pre-Polaris and up to Vega. If your GPU support was removed from amdvlk, uninstall it and install vulkan-radeon.