AMDGPU PRO (Русский)
В данной статье описывается работа с проприетарным драйвером для видеокарт AMD.
Назначение проприетарных компонентов
AMD выпускает открытый драйвер через стандартные каналы распространения. Также они периодически выпускают набор Radeon Software for Linux, в который входят как открытые, так и проприетарные компоненты. Открытые компоненты оттуда не нужны, а проприетарные перепаковываются из последней ubuntu lts. Они доступны в AUR как amdgpu-pro-installer.
Комментарий Джона Бриджмена из AMD, объясняющий, почему они до сих пор делают проприетарный драйвер:
- В настоящее время наши упакованные драйверы в основном предназначены для:
- клиентов, использующих enterprise/LTS дистрибутивы, которые не поставляют самые свежие версии графических драйверов — для них мы предлагаем открытый и проприетарный варианты
- клиентов, использующих приложения для рабочих станций, которым нужна дополнительная производительность/сертификация от драйвера, ориентированного на рабочие станции (хотя Марек за последний год проделал большую работу для улучшения производительности Mesa в приложениях для рабочих станций)
- Третья целевая аудитория — клиенты, которым нужен готовый для использования OpenCL, либо для использования с упакованными открытыми/закрытыми драйверами, либо со стеком на основе свежего дистрибутива.
Существует несколько проприетарных компонентов: OpenGL, OpenCL, Vulkan и AMF. Иногда вы можете захотеть использовать эти компоненты из-за специфических особенностей, которых может не хватать в открытых компонентах.
AMDGPU PRO OpenGL — это проприетарный бинарный userspace-драйвер, работающий поверх открытого драйвера amdgpu. Из статьи Radeon Software 18.50 vs Mesa 19 benchmarks: Когда дело доходит до OpenGL-игр, драйвер RadeonSI Gallium3D просто доминирует над проприетарным драйвером AMD OpenGL. Пользователям видеокарт, отличных от Radeon Pro, рекомендуется использовать графический стек amdgpu. Проприетарный драйвер в основном используется ради профилей совместимости, на которые опираются некоторые программы и которых нет в открытом драйвере. Подробнее в gentoo wiki по ссылке ниже.
AMDGPU PRO Vulkan — обязательная зависимость для AMF.
AMDGPU PRO OpenCL — используется, поскольку реализация Mesa OpenCL ещё не полностью завершена. Проприетарный компонент только для видеокарт Polaris. В более новых видеокартах используется открытый ROCm OpenCL.
AMDGPU AMF — используется для кодирования/декодирования мультимедиа на видеокарте.
Установка
Для установки проприетарных компонентов есть amdgpu-pro-installer на AUR, который предоставляет следующие пакеты:
- amdgpu-pro-oglpAUR: проприетарная реализация OpenGL;
- lib32-amdgpu-pro-oglpAUR: проприетарная реализация OpenGL для 32-битных приложений;
- vulkan-amdgpu-proAUR: проприетарная реализация Vulkan;
- lib32-vulkan-amdgpu-proAUR: проприетарная реализация Vulkan для 32-битных приложений;
- amf-amdgpu-proAUR: реализация Advanced Media Framework.
Доступные реализации OpenCL описаны в разделе GPGPU (Русский)#AMD/ATI.
Использование
Использование проприетарного OpenGL
Запустите нужное приложение через команду progl:
$ progl glmark2
Проверка используемого драйвера
Выполните команду:
$ glxinfo | grep "OpenGL vendor string" | cut -f2 -d":" | xargs
Если она выведет AMD
, значит работает открытый драйвер. Если она выведет Advanced Micro Devices, Inc.
или ATI Technologies Inc.
, значит работает проприетарный драйвер.
Также можно использовать glmark2. При использовании открытого драйвера вы увидите:
GL_VENDOR: AMD GL_RENDERER: Radeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.10.7-arch1-1, LLVM 11.0.1) GL_VERSION: 4.6 (Compatibility Profile) Mesa 20.3.3
А при использовании закрытого драйвера вы увидите:
GL_VENDOR: ATI Technologies Inc. GL_RENDERER: Radeon RX 580 Series GL_VERSION: 4.6.14756 Compatibility Profile Context
Использование проприетарного Vulkan
Запустите нужное приложение через команду vk_pro:
$ vk_pro vkmark
Подробнее в разделе Vulkan (Русский)#Выбор с помощью AMD Vulkan Prefixes.
Использование Advanced Multimedia Framework
Смотрите раздел FFmpeg#AMD AMF.
Решение проблем
Гибридная графика Intel + AMD
Для пользователей гибридных систем с графикой Intel и AMD использование проприетарного драйвера AMDGPU Pro Workstation Driver может работать не так, как ожидалось, из-за различий в реализации MESA.
Симптом следующий: при загрузке машины появляется чёрный экран, но курсор мыши при этом движется нормально.
К сожалению, Reverse PRIME не является решением. Смотрите ответ разработчиков.
Удаление пакетов
Если у вас возникли проблемы, например, вы не можете войти в систему из-за чёрного экрана, вы можете вернуть всё назад, удалив все пакеты, связанные с AMDGPU PRO.
Войдите в виртуальную консоль (например, нажатием Ctrl+Alt+F2
), выполните команду:
# pacman -R $(pacman -Qg Radeon_Software_for_Linux | cut -f2 -d" ")
и перезагрузитесь.
GPU Southern Islands (SI) или Sea Islands (CIK)
Если при использовании графики Southern Islands (SI) или Sea Islands (CIK) команда clinfo
выдаёт:
amdgpu_device_initialize: DRM version is 2.50.0 but this driver is only compatible with 3.x.x.
Убедитесь, что вы используете драйвер amdgpu
, а не radeon
.
Проверить используемый драйвер можно командой:
$ lspci -k
03:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Opal XT [Radeon R7 M265/M365X/M465] Subsystem: Acer Incorporated [ALI] Aspire V5 Radeon R7 M265 Kernel driver in use: radeon Kernel modules: radeon, amdgpu
Подробнее в разделе AMDGPU (Русский)#Включение поддержки Southern Islands (SI) и Sea Islands (CIK).
Прошивка и драйверы AMD
Драйверы и прошивка AMD (особенно последние прошивки) могут оказаться рассинхронизированы и создавать проблемы или не работать вообще. В журнале поищите VCN
:
system VCN FW Encode interface version=1.9, expected version=1.8
Откат пакета прошивок может решить проблему.