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. Смотри характеристики конкретной модели.
Полезные ресурсы
- Variable refresh rate: ArchWiki: самая полная страница: Xorg, Plasma, GNOME, Sway, Hyprland, правка EDID и обходы проблем.
- AMDGPU: ArchWiki: настройка драйвера, Option
VariableRefresh, TearFree, диагностика. - Kernel mode setting: ArchWiki, как VRR работает через KMS и почему без него не будет.
Заключение
FreeSync на AMD включается одним файлом конфига на Xorg и одним переключателем на Wayland, а проверяется парой команд и тестом с полосами. Помни про три вещи: пункт Adaptive Sync в OSD монитора, кабель DisplayPort и лимит кадров чуть ниже максимальной частоты. Если затем фризы остались, начинай с xrandr --props и dmesg, там видна настоящая причина.
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии