Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

FreeSync на AMD: как включить на Xorg и Wayland

FreeSync на карте AMD включается из трёх частей: монитор с VRR, включённый пункт Adaptive Sync в его OSD и драйвер amdgpu, который умеет отдавать монитору переменную частоту. На Xorg достаточно одной опции в конфиге, на Wayland — тумблера в настройках Plasma или GNOME. Ниже — точные команды, проверка, что VRR реально работает, и что делать, если появились фризы.

Что нужно, чтобы FreeSync заработал на AMD?

Проверь по пунктам, иначе настройка дальше бессмысленна.

Монитор. Подойдёт любой с FreeSync или Adaptive-Sync. В OSD монитора пункт «Adaptive Sync» / «FreeSync» должен быть включён — сам монитор после подключения ничего не включает. Помни: у многих экранов верхняя граница VRR ниже максимальной частоты, например 165 Гц, а диапазон VRR заканчивается на 144 Гц.

Видеокарта. FreeSync поддерживают все Radeon начиная с RX 200-й серии (2013 год, GCN 2.0) и новее: Vega, Navi, RX 5000/6000/7000, встроенные графи Ryzen 3000+. Драйвер должен быть amdgpu, а не radeon. Если сомневаешься, какой у тебя стек и что выбрать между iGPU и дискретной картой, начни с этой статьи про Radeon и amdgpu.

lspci -k -d ::03xx | grep -A3 "VGA compatible"

В строке Kernel driver in use: должно быть amdgpu.

Кабель. Основной путь — DisplayPort. HDMI работает у части мониторов с HDMI 2.1, и только там, где умеет FRL; поддержка VRR over HDMI в amdgpu появилась с ядра 5.13. Если HDMI не завелся — бери DP, это дешевле всего остального.

EDID. Диапазон VRR монитор отдаёт в EDID, и драйвер берёт данные оттуда. Если в EDID блока с VRR нет, никакая опция в конфиге не поможет.

Как включить FreeSync на Xorg?

Создай файл /etc/X11/xorg.conf.d/20-amdgpu.conf:

sudo tee /etc/X11/xorg.conf.d/20-amdgpu.conf > /dev/null <<'EOF'
Section "OutputClass"
     Identifier "AMD"
     MatchDriver "amdgpu"
     Driver "amdgpu"
     Option "VariableRefresh" "true"
EndSection
EOF

Опция VariableRefresh живёт в секции OutputClass (раньше её описывали в Section "Device"). Блок выше рассчитан на пакет xf86-video-amdgpu; если он не установлен и Xorg после перезапуска ругается на конфиг, поставь пакет — для VRR он надёжнее, чем один только modesetting.

Проверь, что файл подхватился, и перезапусти графическую сессию (полный выход из сессии и вход, а не просто релогин терминала):

grep -A5 "Section \"OutputClass\"" /var/log/Xorg.0.log ~/.local/share/xorg/Xorg.0.log 2>/dev/null | grep -i variable

Быстрый способ переключить режим на лету — свойство VRRCapable через xrandr:

xrandr --set DP-1 VRRCapable 1

Имя выхода бери из xrandr -q. Способ временный: настройка слетает после перезапуска сессии, а под modesetting свойство вообще выводится как vrr_capable и только для чтения. Поэтому постоянный вариант — конфиг выше.

Как включить FreeSync на Wayland?

KDE Plasma. В Настройках → Экран → Конфигурация дисплея есть пункт «Adaptive sync», и по умолчанию стоит «Never». Там три режима:

  • Never — VRR выключен, монитор всегда на максимальной частоте;
  • Automatic — VRR только для непрозрачных полноэкранных окон (то есть для игр);
  • Always — VRR включён всегда, независимо от состояния окна.

Начни с Automatic: в оконном режиме Always часто даёт мерцание. Если тумблер неактивен, монитор не распознан как VRR-совместимый — проверь кабель и то, что greeter (SDDM или GDM) запущен в Wayland, а не в X11.

Тот же переключатель пишется в ~/.config/kwinrc:

grep -A2 "\[Compositing\]" ~/.config/kwinrc

Ключ AllowVRR в секции [Compositing]. После ручной правки нужен перезапуск сессии или kwin_wayland --replace. Если Plasma после обновления падает в KWin и настройки недоступны, сначала почини композитор — разбор краша Plasma после обновления.

GNOME. Начиная с GNOME 50 VRR включён по умолчанию, переключатель лежит в Настройках → Экран, а compositor сам активирует VRR для полноэкранных приложений. На более старых версиях флаг включался вручную:

gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']"
gsettings get org.gnome.mutter experimental-features

Если схема с таким именем не найдена, посмотри доступные ключи командой gsettings range org.gnome.mutter experimental-features и проверь org.gnome.mutter.display — в новых версиях Mutter часть настроек переехала туда.

Как проверить, что VRR действительно работает?

На Xorg свойство vrr_capable показывается только у того выхода, к которому подключён монитор, остальные честно отдают 0:

xrandr --props | grep -i -A2 vrr

Ожидаемый ответ — vrr_capable: 1. Значение 0 означает, что либо смотришь не тот вывод, либо монитор не отдаёт VRR в EDID.

Живая проверка — тест с полосами, которые едут с разной частотой. Ставится из AUR (нужен пакет love), работает и на X11, и на Wayland: с выключенным VRR полосы дёргаются и пропускают кадры, с включённым идут плавно. kscreen-doctor показывает частоты и режимы, но статус VRR не выводит — от него ответа не жди.

Ориентируйся на ощущения: в игре с 30 до 60 fps картинка остаётся ровной, без вертикальной полосы разрыва. Полосы по краям экрана в играх — это уже VSync, а не FreeSync.

Почему FreeSync не работает в отдельных приложениях?

VRR включается там, где окно непрозрачно и занимает весь экран на том выводе, который смотрит в игрок. Обычное окно в оконном режиме под VRR не попадает, и в этом не баг.

  • На Plasma режим Automatic делает ровно то, что нужно: VRR только в полноэкранных играх, в браузере и редакторе его нет.
  • В GNOME compositor активирует VRR для всех полноэкранных приложений автоматически.
  • На X11 с двумя мониторами в одном дисплее FreeSync ломается — это известное ограничение. Второй экран на 60 Гц можно вынести в отдельный X-дисплей, тогда первый получит VRR обратно. Помогает опция Option "AsyncFlipSecondaries" "true" (xorg-server 21.1.0+), но на втором мониторе возможен тиринг.
  • Mesa держит чёрный список приложений, которым VRR мешает: /usr/share/drirc.d/00-mesa-defaults.conf. Видеоплееры там есть, поэтому в MKV с VRR бывают рывки. Сброс кэша решений драйвера — dricreset -v.

Что делать, если появились фризы, тиринг или пропадает сигнал?

Рывки при низком fps. Монитор сдаёт частоту ниже собственной частоты обновления — обычно из-за округления вниз. При 144 Гц кадры 45 fps превращаются в скачки. Помогает gamescope с потолком чуть ниже максимума или лимит кадров в самой игре:

gamescope -f 141 -- %command%

Остаточный тиринг в VRR. На Xorg включи Option "TearFree" "true" в том же блоке OutputClass и перезапусти сессию.

Монитор гаснет и пишет, что нет сигнала. Частота уходит ниже безопасного минимума VRR-диапазона. Лечится подъёмом нижней границы диапазона в EDID, иногда через VertRefresh в секции Monitor конфига Xorg.

Память VRM уезжает на минимум вместе с VRR. В dmesg при этом видно pp_dpm_mclk на низких частотах — такое бывает на таймингах без CVT. Смотри ArchWiki, там есть готовый обходной путь.

Чего не существует. Параметра amdgpu.vrr_support в ядре нет, включать VRR на уровне модуля не нужно. Всё решают монитор, EDID и настройка композитора. Отдельно стоит убедиться, что базовая связка amdgpu + Mesa у тебя вообще исправна, а если хочется больше FPS в играх — почитай про Vulkan RADV и Mesa.

Частые вопросы

В OSD монитора есть Adaptive Sync, а в системе vrr_capable: 0. Почему?

Смотри вывод, к которому подключён именно этот монитор: xrandr --props | grep -i -A2 vrr печатает свойства всех портов. Если и на нужном выводе 0 — проверь кабель (нужен DP), затем EDID и то, что в системе amdgpu, а не radeon.

FreeSync заработает на мониторе G-SYNC Compatible?

Да, если он поддерживает и FreeSync, а драйвер amdgpu не сломал EDID. Но специальная валидация NVIDIA тут ни при чём, а лишние кнопки в OSD иногда только мешают.

Нужно ли что-то переключать в BIOS или на самой карте?

Нет. Всё включение — в мониторе (Adaptive Sync) и в системе (конфиг Xorg или настройки композитора).

Вертикальный разрыв в играх остался, что делать?

Это либо включённый VSync, либо окно не в полноэкранном режиме, либо монитор не в VRR-диапазоне. Проверь все три пункта по очереди.

FreeSync и 240 Гц на том же мониторе — совместимы?

Часто нет: у многих экранов VRR работает до 144 Гц, а 240 Гц доступна только в фиксированном режиме без VRR. Смотри характеристики конкретной модели.

Полезные ресурсы

Заключение

FreeSync на AMD включается одним файлом конфига на Xorg и одним переключателем на Wayland, а проверяется парой команд и тестом с полосами. Помни про три вещи: пункт Adaptive Sync в OSD монитора, кабель DisplayPort и лимит кадров чуть ниже максимальной частоты. Если после этого фризы остались, начинай с xrandr --props и dmesg — там видна настоящая причина.



Не получилось? Поможем настроить

Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Читайте также

Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.

Telegram Max