Vulkan (Русский)

Состояние перевода:
На этой странице представлен перевод статьи
Vulkan
. Дата последней синхронизации: 1 июля 2025. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Из
Википедии
:
Vulkan (рус. Вулкан) — кроссплатформенный API для 2D- и 3D-графики, впервые представленный Khronos Group в рамках конференции GDC 2015.
Дополнительная информация доступна на
веб-сайте Vulkan
.
Установка
Примечание
На гибридной графике (
NVIDIA Optimus
/AMD Dynamic Switchable Graphics):
Vulkan в настоящее время официально не поддерживается
Bumblebee
[1]
, но работает с
primus_vk
или
primus-vk-git
AUR
.
Драйвер Radeon Vulkan теперь поддерживает
PRIME
[2]
.
Для запуска Vulkan-приложений
установите
пакет
vulkan-icd-loader
(и
lib32-vulkan-icd-loader
из репозитория
multilib
, если планируется запускать 32-битные приложения), а также драйвер Vulkan для видеокарты. Есть несколько пакетов, которые
предоставляют
vulkan-driver
и
lib32-vulkan-driver
:
Intel
:
vulkan-intel
(или
lib32-vulkan-intel
для 32-битных приложений)
NVIDIA
: есть две реализации:
nvidia-utils
(или
lib32-nvidia-utils
) — официальный проприетарный драйвер от NVIDIA
vulkan-nouveau
(или
lib32-vulkan-nouveau
) — NVK (часть проекта Mesa)
Примечание
Для включения NVK требуются дополнительные настройки в системе; смотрите раздел
Nouveau (Русский)#Использование Vulkan-драйвера NVK
.
AMD
: есть три реализации, которые можно установить одновременно:
vulkan-radeon
(или
lib32-vulkan-radeon
) — RADV (часть проекта Mesa)
amdvlk
AUR
(или
lib32-amdvlk
AUR
) — AMDVLK Open (поддерживается AMD)
vulkan-amdgpu-pro
AUR
(или
lib32-vulkan-amdgpu-pro
AUR
) — AMDVLK Closed (поддерживается AMD)
Также есть программные реализации, позволяющие использовать Vulkan на устройствах без его аппаратной поддержки:
Lavapipe
:
vulkan-swrast
(или
lib32-vulkan-swrast
)
SwiftShader
:
swiftshader-git
AUR
Для разработки приложений Vulkan
установите
vulkan-headers
и, опционально,
vulkan-validation-layers
,
vulkan-man-pages
AUR
и
vulkan-tools
(в этом пакете также содержатся утилиты
vulkaninfo
и
vkcube
).
Проверка
Чтобы узнать, какие реализации Vulkan в настоящее время установлены в вашей системе, используйте следующую команду:
$ ls /usr/share/vulkan/icd.d/
Чтобы убедиться, что Vulkan работает с вашим оборудованием,
установите
vulkan-tools
и используйте команду
vulkaninfo
для получения информации о вашей системе. Если она сообщает информацию о видеокарте, значит Vulkan работает.
$ vulkaninfo
Выбор
Выбор устройства
В системах с несколькими видеокартами может понадобиться принудительно использовать определённую видеокарту. Для этого нужен
vulkan-mesa-layers
. Видеокарта выбирается с помощью установки
переменной окружения
MESA_VK_DEVICE_SELECT
со значением
vendorID:deviceID
Узнать список доступных видеокарт можно командой:
$ MESA_VK_DEVICE_SELECT=list vulkaninfo
Добавление
!
в конце значения переменной делает выбор принудительным (приложение не увидит другие видеокарты помимо указанной). Подробнее:
Vulkan mesa device select layer environment variables
.
Выбор драйвера AMD
Для видеокарт AMD можно одновременно установить несколько драйверов Vulkan, и может возникнуть необходимость переключаться между ними.
Выбор с помощью переменной окружения
Примечание
Этот метод не поддерживает выбор AMDVLK Closed драйвера.
В
amdvlk
AUR
реализована специальная логика, которая выбирает AMDVLK в качестве драйвера по умолчанию и для выбора драйвера требует:
указать
AMD_VULKAN_ICD=RADV
для переключения со стандартного AMDVLK на другой драйвер;
или указать
DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
для включения метода ICD loader, описанного ниже.
Переменная окружения
DISABLE_LAYER_AMD_SWITCHABLE_GRAPHICS_1=1
позволяет вам выбрать необходимый драйвер с помощью переменной окружения
VK_DRIVER_FILES
. Например, запустить Steam с RADV-драйвером возможно следующей командой:
$ VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json steam
Чтобы избежать сбоев в 32-битных играх, переменной окружения можно задать 32- и 64-битный вариант значения.
Выбор с помощью AMD Vulkan Prefixes
AMD Vulkan Prefixes
— это скрипт для переключения между всеми тремя реализациями Vulkan.
Установите
пакет
amd-vulkan-prefixes
AUR
и добавьте к команде запуска приложения нужный вам префикс — доступны команды
vk_radv
,
vk_amdvlk
и
vk_pro
. Например, для запуска приложения AMDVLK Closed драйвером:
$ vk_pro
команда
Программный рендеринг
Вы можете установить программную реализацию Vulkan — lavapipe — например, для выявления проблем с оборудованием:
vulkan-swrast
(или
lib32-vulkan-swrast
для 32-битных приложений).
В следующем примере показан запуск
vulkaninfo
с необходимыми переменными окружения, включающими принудительный программный рендеринг для Vulkan и
OpenGL
(переменная
__GLX_VENDOR_LIBRARY_NAME=mesa
также позволяет использовать команду пользователям
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
База данных оборудования Vulkan
База данных оборудования Vulkan
содержит комбинации графических процессоров и драйверов. Предоставление собственной информации возможно с помощью
vulkan-caps-viewer-wayland
AUR
или
vulkan-caps-viewer-x11
AUR
.
Решение проблем
NVIDIA - Vulkan не работает и не может инициализироваться
Переменные окружения
Некорректные или противоречивые значения
переменных окружения
могут нарушать работу Vulkan, а неподходящие значения могут привести к использованию не той видеокарты на системах с несколькими видеокартами. Правильная настройка переменных также может позволить
не подавать питание на вторую видеокарту, когда она не нужна
.
Переключение GPU
Если на вашей машине несколько видеокарт, а Vulkan не видит одну из них, убедитесь, что она не отключена в BIOS/UEFI или в ядре. Различные методы использования нескольких видеокарт описаны в статье
NVIDIA Optimus (Русский)
.
Проверить текущий статус можно с помощью
optimus-manager-git
AUR
:
$ 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
Прошивка GSP
Смотрите раздел
NVIDIA/Решение проблем#Прошивка GSP
.
No device for the display GPU found. Are the intel-mesa drivers installed?
Попробуйте задать конфигурации
intel_icd
и
primus_vk_wrapper
в переменной окружения
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 при выполнении vulkaninfo
Если после запуска
vulkaninfo
на видеокарте AMD из семейства GCN1 или GCN2 вы получаете такое сообщение об ошибке:
ERROR at /build/vulkan-tools/src/Vulkan-Tools-1.2.135/vulkaninfo/vulkaninfo.h:240:vkEnumerateInstanceExtensionProperties failed with ERROR_INITIALIZATION_FAILED
Проверьте, включили ли вы поддержку этих моделей видеокарт (смотрите раздел
AMDGPU (Русский)#Включение поддержки Southern Islands (SI) и Sea Islands (CIK)
).
Проверить правильность загрузки драйверов видеокарты можно командой
lspci -k
— она должна сообщать, что используется драйвер
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
...
Темы на форуме об этой проблеме:
[3]
[4]
AMDGPU - Зависания при запуске игр DirectX Vulkan
Похоже, что Radeon-Vulkan вызывает зависание драйвера и/или GPU в некоторых играх, использующих 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
...
Переключение на AMDVLK или его включение, похоже, решает проблему.
BBS#275991
AMDGPU - Крахи при запуске игр DirectX Vulkan
AMDVLK известен своей нестабильностью (темы на форуме:
BBS#284118
,
BBS#283008
,
BBS#274737
): переключение на Radeon-Vulkan или его включение решает проблему.
AMDGPU - Приложения Vulkan запускаются медленно
После установки
cuda
вы можете обнаружить, что приложения Vulkan, например
Chromium
, запускаются медленно. Это связано с тем, что
nvidia-utils
предоставляет драйвер Vulkan, который пытается загружаться перед драйвером Vulkan для Radeon. Чтобы решить эту проблему, в
переменной окружения
VK_DRIVER_FILES
укажите нужный драйвер —
/usr/share/vulkan/icd.d/radeon_icd.i686.json:/usr/share/vulkan/icd.d/radeon_icd.x86_64.json
.
AMDGPU - Found no drivers!
Если вы получаете ошибку
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 периодически прекращает поддержку старых видеокарт (
pre-Polaris
,
Vega
). Если поддержка видеокарты удалена из текущей версии драйвера
amdvlk
AUR
,
удалите
его и вместо него
установите
vulkan-radeon
.