Предыстория: в марте с.г. я купил AMD Ryzen 5 2400G, материнку на базе X370, 8 гиг быстрой памяти и M.2 SSD, с тем, чтобы нормально поработать в Darktable. Старый комп на базе Intel core i3-2120 как-то не особо хотел ворочаться под всё более сложными алгоритмами.
Для того, чтобы завести всё это хозяйство под онтопиком, пришлось обновить ядро, linux-firmware, месу и иксы. К счастью, в апреле вышла свежая убунта, в которой всё это было уже обновлено до приличных версий, хотя бы 3D было из коробки.
Но не очень. Потому что система висла на некоторых программах. Конкретно Firefox и Darktable. Возможно, я просто чаще всего пользуюсь именно ими, но вот во время OpenArena, например, или Clementine система не повисла ни разу. Не разбирался. Плюс, не работал Wayland.
Но поскольку я с апреля практически перманентно в командировках и большую часть времени общаюсь с ноутом, меня эти проблемы как-то не очень волновали, хотя, конечно, хотелось бы иметь работающую систему дома, а не эту хрень.
Время шло, поросёнок рос, в интернете уже вовсю писали, что в ядре 4.17 устранили баг с зависанием в видеокартах RX Vega (commit 9cdd39e51ccaa3a1ed0a034a68d80defd4046cd8), но проблема была в том, что установка ядра 4.17 ничего не дала. Тем временем в июне прилетело обновление amd-microcode и внезапно стал работать Wayland.
Вышел проприетарный драйвер, я его поставил, эффекта — ноль. Вот тут я призадумался. Хотел уже было поставить десяточку, но виндовый порт Darktable всё ещё такого качества, что нет.
Короче. После долгого, редкого гуглежа оказалось, что все эти замечательные изменения относятся к новому драйверу, который активируется опцией ядра «amdgpu.dc=1». Как только я включил эту опцию на ядре 4.17, так сразу волосы мои стали чистыми и шелковистыми, а Darktable выдержала марафон в 16 часов обработки всех фото, накопившихся за последние полтора месяца. Ни единого разрыва!
Что, вообще говоря, странно, потому что в ченжлоге на ядро написано, что начиная с 4.17, dc используется по умолчанию. Но такова селяви.
tl;dr
1. Ставим свой любимый дистрибутив.
2. Обновляем ядро до 4.17 (4.18 и новее тоже подойдёт)
3. Удостоверяемся, что Mesa не ниже 18, если нет — обновляем
4. Ставим свежий linux firmware. Wayland вам, может, и не нужен, но если он заработал, значит какие-то ценные функции были добавлены.
5. Добавляем amdgpu.dc=1 в строку загрузки ядра
UPD: Да, проблему с загрузкой через раз это не решает. Но если загрузилось, будет работать.