FreeSync на карте AMD включается из трёх частей: монитор с VRR, включённый пункт Adaptive Sync в его OSD и драйвер amdgpu, который умеет отдавать монитору переменную частоту. На Xorg достаточно одной опции в конфиге, на Wayland — тумблера в настройках Plasma или GNOME. Ниже — точные команды, проверка, что VRR реально работает, и что делать, если появились фризы.
Проверь по пунктам, иначе настройка дальше бессмысленна.
Монитор. Подойдёт любой с 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 нет, никакая опция в конфиге не поможет.
Создай файл /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 и только для чтения. Поэтому постоянный вариант — конфиг выше.
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 часть настроек переехала туда.
На 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.
VRR включается там, где окно непрозрачно и занимает весь экран на том выводе, который смотрит в игрок. Обычное окно в оконном режиме под VRR не попадает, и в этом не баг.
Automatic делает ровно то, что нужно: VRR только в полноэкранных играх, в браузере и редакторе его нет.Option "AsyncFlipSecondaries" "true" (xorg-server 21.1.0+), но на втором мониторе возможен тиринг./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.
vrr_capable: 0. Почему?Смотри вывод, к которому подключён именно этот монитор: xrandr --props | grep -i -A2 vrr печатает свойства всех портов. Если и на нужном выводе 0 — проверь кабель (нужен DP), затем EDID и то, что в системе amdgpu, а не radeon.
Да, если он поддерживает и FreeSync, а драйвер amdgpu не сломал EDID. Но специальная валидация NVIDIA тут ни при чём, а лишние кнопки в OSD иногда только мешают.
Нет. Всё включение — в мониторе (Adaptive Sync) и в системе (конфиг Xorg или настройки композитора).
Это либо включённый VSync, либо окно не в полноэкранном режиме, либо монитор не в VRR-диапазоне. Проверь все три пункта по очереди.
Часто нет: у многих экранов VRR работает до 144 Гц, а 240 Гц доступна только в фиксированном режиме без VRR. Смотри характеристики конкретной модели.
VariableRefresh, TearFree, диагностика.FreeSync на AMD включается одним файлом конфига на Xorg и одним переключателем на Wayland, а проверяется парой команд и тестом с полосами. Помни про три вещи: пункт Adaptive Sync в OSD монитора, кабель DisplayPort и лимит кадров чуть ниже максимальной частоты. Если после этого фризы остались, начинай с xrandr --props и dmesg — там видна настоящая причина.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии