Vulkan: различия между версиями
LAKostis (обсуждение | вклад) |
LAKostis (обсуждение | вклад) |
||
Строка 12: | Строка 12: | ||
Vulkan еще часто используют как альтернативу для реализации 2D/3D функций в графике, см. например, GTK+4 и Qt. | Vulkan еще часто используют как альтернативу для реализации 2D/3D функций в графике, см. например, GTK+4 и Qt. | ||
Текущая доступная версия спецификации API: [https://www.khronos.org/registry/vulkan/specs/1.1/html/vkspec.html '''1.1. | Текущая доступная версия спецификации API: [https://www.khronos.org/registry/vulkan/specs/1.1/html/vkspec.html '''1.1.102''']<br> | ||
Текущая доступная версия ICD/Headers/Validation layers в Сизифе: '''1.1.101'''<br> | Текущая доступная версия ICD/Headers/Validation layers в Сизифе: '''1.1.101'''<br> | ||
Версия от 01:29, 6 марта 2019
Статус поддержки Vulkan API в Сизифе
Что такое Vulkan API?
Из Wikipedia: Vulkan — кроссплатформенный API для 2D- и 3D-графики, впервые представленный Khronos Group в рамках конференции GDC 2015.
Vulkan API изначально был известен как «новое поколение OpenGL» или просто «glNext», но после анонса компания отказалась от этих названий в пользу названия Vulkan. Как и OpenGL, Vulkan позволяет с высокой производительностью отображать в реальном времени различные приложения с 3D-графикой, такие как игры или интерактивные книги на всех платформах, а также обеспечивает более высокую производительность и меньшую нагрузку на процессор, аналогично Direct3D 12, Metal[en] и Mantle. Vulkan основан на технологиях AMD в Mantle. На текущий момент для Linux существует т.н. Vulkan SDK kit, который представляет собой библиотеку для загрузки низкоуровневых драйверов (ICD loader), заголовочные файлы для разработчиков (Vulkan Headers), специальную библиотеку для проверки корректности работы всех компонентов (Validation layers).
Т.к. Vulkan API в чем-то схож с Direct3D, появилось достаточное количество трансляторов Direct3D->Vulkan, которые значительно улучшают качество поддержки игр и приложений Windows под Linux. Самый известный пример такого транслятора - DXVK, который реализует в wine поддержку D3D11 через Vulkan.
Vulkan еще часто используют как альтернативу для реализации 2D/3D функций в графике, см. например, GTK+4 и Qt.
Текущая доступная версия спецификации API: 1.1.102
Текущая доступная версия ICD/Headers/Validation layers в Сизифе: 1.1.101
Поддержка API на аппаратном уровне
Производитель | AMD | Intel | Nvidia |
---|---|---|---|
Реализация в MesaLib stable (18.x) | RADV 1.1.70[1] | ANV 1.1.90[2] | N/A |
Реализация в MesaLib unstable (19.x) | RADV 1.1.90 | ANV 1.1.97 | N/A |
Open-Source реализация от производителя | AMDVLK 1.1.97[3] | ANV (см. выше) | N/A |
Closed-Source реализация от производителя | AMDGPU-PRO 1.1.82[4] | N/A | nvidia_glx 1.1.82[5]/1.1.97[6] |
AMD
Самая разнообразная поддержка, есть много вариантов, которые можно попробовать для различных приложений. Изначально поддержка Vulkan для AMD появилась в MesaLib, написана не разработчиками из AMD и называется RADV (RADeon Vulkan). В настоящий момент является наиболее стабильной, гарантировано поддерживается многими приложениями и играми, но не обладает всеми возможностями в отличие от оф. версии от AMD (AMDVLK/AMDGPU-PRO).
команды для установки:
RADV/MesaLib[7]
$ apt-get install xorg-dri-radeon
AMDGPU-PRO/AMDVLK
$ apt-get install vulkan-amdgpu
ВАЖНО В свежей версии AMDVLK появились новые экспериментальные расширения, которые можно включить указав переменную окружения AMDVLK_ENABLE_DEVELOPING_EXT=<val>, где <val> может принимать некоторые значения, см. оф. документацию.
Intel
Поддержка Vulkan в MesaLib осуществляется разработчиками из Intel, наиболее полная, но особо ничем не блещет. Просто работает(tm). Внутри MesaLib драйвер называется ANV
команды для установки:[8]
$ apt-get install xorg-dri-intel
NVidia
Поддержка Vulkan появилась и в закрытых драйверах от Nvidia, причем предлагается несколько версий на выбор:
- Стабильная версия из long-term и short-term версий драйверов
- Экспериментальная для разработчиков, доступная отдельно.
команды для установки:
стабильная версия
$ apt-get install nvidia_glx_<ver>, где <ver> может быть 390.xx или 410.xx
версия для разрабочиков[9]
$ apt-get install nvidia_glx=<ver>, где <ver> может быть 415.xx и выше
ВАЖНО Начиная с версии 39x NVidia изменила компилятор шейдеров для Vulkan на SPIR-V, в связи с этим в некоторых приложениях замечено падение производительности или ошибки отрисовки. Вернуться на предыдущую версию компилятора шейдеров можно через указание переменной окружения __GL_NextGenCompiler=0
Проверка версии и возможностей ICD
$ apt-get install vulkan-tools
$ vulkaninfo|less
==========
VULKANINFO
==========
Vulkan Instance Version: 1.1.96
....
Device Properties and Extensions :
==================================
GPU0
VkPhysicalDeviceProperties:
===========================
apiVersion = 0x40105a (1.1.90)
driverVersion = 79691875 (0x4c00063)
vendorID = 0x1002
deviceID = 0x7300
deviceType = DISCRETE_GPU
deviceName = AMD RADV FIJI (LLVM 9.0.0)
....
- ↑ актуально для Mesa 18.3.3
- ↑ актуально для Mesa 18.3.3
- ↑ актуально для версии 2019.Q1.4
- ↑ актуально для версии 18.50
- ↑ актуально для версии 410.93
- ↑ актуально для версии 415.22.05
- ↑ для MesaLib unstable пакет называется vulkan-radeon
- ↑ для MesaLib unstable пакет называется vulkan-intel
- ↑ доступна там же, где и MesaLib unstable