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
Откат пакета прошивок может решить проблему.