Запуск Davinci Resolve на открытом драйвере AMD

AMDDaVinci ResolveOpen SourceВидеомонтажМануалы

Приветствую, авантюрист. Я думаю, не секрет, что техника для фото- и видеосъемки развивается семимильными шагами. Объемы материала растут постоянно, а значит, и объемы работ по монтажу. Если лет 10 назад монтирование видео было не такой популярной и востребованной задачей в домашних условиях, то сейчас люди занимаются этим повсеместно. Кто-то делает видео для тик-тока, кто-то профессионально занимается съемкой мероприятий, кто-то просто захотел накидать себе подборку фотографий под музыку для любимой мамы на день рождения. Естественно, подобные задачи ставятся и для пользователей Linux.

Программное обеспечение для работы с видео в Linux есть, кто бы что ни говорил. Может некоторые программы и выглядят как софт из 90-ых, но они все же работают, и люди делают на них вполне серьезные вещи.

Davinci Resolve – это очень мощная кросплатформенная программа для монтирования видео. Настолько мощная, что её использовали в создании многих современных видеофильмов:



Программа работает на всех трех основных платформах, но так вышло, что с запуском на Linux есть небольшие особенности. Об этих особенностях мы сегодня и поговорим.


Особенности


На сегодняшний день существует два основных серьезных производителя видеокарт: NVIDIA и AMD. В системах Linux под каждого из этих производителей существуют 2 основных драйвера: открытый и закрытый (проприетарный). Davinci Resolve работает предпочтительно с закрытым драйвером. В ситуации с NVIDIA все просто – открытый драйвер очень плох и уступает проприетарному, поэтому все, у кого приобретена NVIDIA, итак используют проприетарный драйвер, и у них все работает без проблем. С пользователями AMD ситуация посложнее. Открытый драйвер на голову лучше проприетарного, а значит, приходиться выбирать: или использовать Davinci Resolve, но использовать проприетарный драйвер, или использовать открытый драйвер, но монтировать в чем-то другом. Но Linux не так прост, как кажется =) и можно сделать такую манипуляцию, что драйвер у нас будет стоять открытый, но какая-то конкретная программа будет использовать части проприетарного драйвера без какого либо ущерба в производительности. Собственно, давайте же попробуем сделать это. Запускать будем на двух системах: arch-подобной Manjaro Linux и debian-подобной Linux Mint.


Запуск Davinci Resolve на открытом драйвере AMD на Linux Mint


Для чистоты эксперимента я устанавливаю чистую систему снуля. Само собой полностью её обновляю. Дальше нам необходимо скачать сам установщик Davinci Resolve с официального сайта https://www.blackmagicdesign.com/ru/products/davinciresolve/



Нажимаем кнопку загрузить, выбираем версию 17 для Linux (нас попросят заполнить небольшую анкету и после чего дадут скачать файл программы).



Жмем «Зарегистрироваться и загрузить» и получаем наш файлик. Извлекаем содержимое, кликаем 2 раза, запускаем мастер установки и ставим программу.



Отлично, программа установлена. Сейчас при попытке её запустить мы не получим никакого результата, программа либо зависнет при старте, либо выдаст что-то про openCL и откажется запускаться.

Статьи по теме


Первое, что нам необходимо сделать, это установить тот самый openCL, да не простой, а именно из проприетарного драйвера. Для этого качаем драйвер с сайта AMD. В разделе драйверы выбираем вашу видеокарту и жмем «SUBMIT»



Вас перекидывает на страничку скачивания драйверов. Листаем чуть ниже и находим там «Ubuntu x86 64-Bit», раскрываем список и качаем драйвер тот, что выше, для 20-ой версии.



Содержимое архива распаковываем, заходим в него и открываем в этом окне терминал, в который вводим следующую команду

./amdgpu-pro-install --opencl=pal,legacy --headless

Данная команда установит только openCL, сам драйвер устанавливаться не будет.



Отлично, полдела сделано. Теперь нам нужно подменить часть открытого драйвера. Для этого мы можем воспользоваться пакетом amdgpu-pro-libgl из AUR-репозитория arch. Почему бы и не позаимствовать у братьев =) Но есть одна проблема. Как нам этот пакет собрать? На самом деле я без понятия, можно ли как-то собирать ауры на debian-подобных системах. Как вариант, ты можешь поставить на виртуальную машину ту же manjaro и воспользоваться инструкцией для сборки ниже или запустить manjaro с флешки и также собрать пакет.

Кстати как сделать загрузочную флешку можно прочитать вот тут.

Ну или скачать уже собранный пакет, который я оставлю тут.

В собранном пакете нам нужна одна папка – это amdgpu-pro-libgl. Скопируем её, куда-то, например в домашний каталог.



Подготовка закончена, теперь нужно запустить Davinci Resolve с парочкой параметров. Лучше всего создать bash-скриптик вот таким образом:

#!/bin/bash
LD_LIBRARY_PATH="/home/zerg/amdgpu-pro-libgl/usr/lib/amdgpu-pro/:${LD_LIBRARY_PATH}" LIBGL_DRIVERS_PATH="/home/zerg/amdgpu-pro-libgl/usr/lib/dri/" 
dri_driver="amdgpu" /opt/resolve/bin/resolve

LD_LIBRARY_PATH и LIBGL_DRIVERS_PATH указывают на каталог amdgpu-pro-libgl в моем домашнем каталоге, ты, естественно, замени путь на свой.



Ну вот и все, кликаем на скрипт и жмем запустить.



Запуск Davinci Resolve на открытом драйвере AMD на Manjaro Linux


В отличии от Linux Mint, в Manjaro скачивать программу не нужно, можно воспользоваться AUR-пакетом.

yay -S davinci-resolve


После установки, так же, как в случае с linux Mint, нам нужно установить openCL, но здесь это сделать опять же гораздо проще. Просто ставим AUR-пакет opencl-amd командой.

yay -S opencl-amd


Дальше нам нужны некоторые файлы из проприетарного драйвера. Важно, что драйвер нужно только собрать, но ни в коем случае не устанавливать. Для успешной сборки убедимся, что у нас установлен пакет base-devel. Ну и не забудем поставить yay

sudo pacman -S base-devel
sudo pacman -S yay


Теперь можно собирать проприетарный драйвер. Заходим на aur.archlinux.org и ищем там пакет amdgpu-pro-libgl. Справа есть ссылка «Download snapshot», кликаем по ней и получаем файлы для сборки, распаковываем



переходим в распакованный каталог и открываем в нем терминал



в терминале вводим команду для сборки

makepkg


После сборки каталог будет выглядеть вот так:



теперь идем в каталог pkg, а там то, что нам нужно – каталог amdgpu-pro-libgl. Копируем этот каталог, например, в домашний каталог



ну, и последний шаг – это команда запуска с указанием путей для файлов подмены. Создаем bash-скрипт:

#!/bin/bash
LD_LIBRARY_PATH="/home/zerg/amdgpu-pro-libgl/usr/lib/amdgpu-pro/:${LD_LIBRARY_PATH}" LIBGL_DRIVERS_PATH="/home/zerg/amdgpu-pro-libgl/usr/lib/dri/" 
dri_driver="amdgpu" /opt/resolve/bin/resolve

LD_LIBRARY_PATH и LIBGL_DRIVERS_PATH указывают на каталог amdgpu-pro-libgl в моем домашнем каталоге, ты, естественно, замени путь на свой.



Готово, можно запускать.



Итог


Благодаря этому небольшому трюку ты сможешь воспользоваться таким довольно мощным инструментом, как Davinci Resolve на любой системе. Не исключаю что могут быть какие то проблемы на других системах или конфигурациях оборудования, я пробовал только на двух вышеперечисленных системах. Если не получается, жду тебя в комментариях. Дальше все только в твоих руках. Удачи, Авантюрист.

Автор: Зарницын Д.А. — Easy Linux