LINUX.ORG.RU

NixOS + Radeon R9 270 + Tearing

 , ,


0

1

Дано: есть машина с NixOS и с видеокартой Radeon R9 270. Надумал я, наконец, настроить NixOS, подружить с видеокартой и попытаться избавиться от тиринга.

Долго искал, оказалось, что в настроечном файле «/etc/nixos/configuration.nix» для значения «services.xserver.videoDrivers» можно указывать и «radeon». Хотя этого нет в руководстве «man configuration.nix». Это для того, чтобы X.org подгрузил требуемый драйвер.

Теперь по-поводу тиринга: избавиться от него помогло указание

  services.xserver.deviceSection = ''
Option "TearFree" "true"
'';

Весь мой конфигурационный файл:

> cat /etc/nixos/configuration.nix

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
      <home-manager/nixos>
    ];

  boot.loader.grub.enable = true;
  boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only
  boot.initrd.kernelModules = [ "amdgpu" ];
  boot.supportedFilesystems = [ "ntfs" ];

  # Enable the X11 windowing system.
  services.acpid.enable = true;
  services.xserver.videoDrivers = [ "radeon" ];
  services.xserver.deviceSection = ''
Option "TearFree" "true"
'';
  services.xserver.enable = true;
  services.xserver.desktopManager.mate.enable = true;

  # Enable sound.
  sound.enable = true;
  hardware.pulseaudio.enable = true;

  programs.adb.enable = true;
  programs.fish.enable = true;

  time.timeZone = "Europe/Moscow";
  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.czan = {
     isNormalUser = true;
     extraGroups = [ "wheel" "adbusers"]; # Enable ‘sudo’ for the user.
     shell = pkgs.fish;
     packages = with pkgs; [
       firefox
       emacs
       gcc
       sakura
       dmenu
       xmobar
       zathura
       mc
       mpv
       qbittorrent
       rustup
       anki
       xorg.xmodmap
       gdb
       minicom
       openocd
       usbutils
       git
       eltclsh
       nethack
       sbcl
       libreoffice-qt
       hunspell
       hunspellDicts.ru_RU
       hunspellDicts.en_US
       (retroarch.override {
        cores = with libretro; [
          genesis-plus-gx
          snes9x
          beetle-psx
        ];
       })
      p7zip
      unrar-wrapper
      wineWowPackages.stable
      winetricks
     ];
   };

 environment.systemPackages = with pkgs; [
   vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
   wget
   jetbrains.idea-community
   pavucontrol
 ];

  system.stateVersion = "22.11"; # Did you read the comment?
}


Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от mrjaggers

тем, что только от него и зависит на 99%.

Железо никак не влияет на проблемы как у ТС-а.

У него типичная иксовая ситуация, когда композитора нет или vsync в нем не завелся.

Обойти это можно включив тройную буферизацию через опцию драйвера. Для intel/amd это tearfree, для nvidia это была бы другая опция со своими эффектами.

И подобный хаос под иксами всегда был и будет. У одних композитор с vsync-ом, но полноэкранные приложения пускает мимо. В другом все приложения через него проходят с большей задержкой и низкой производительностью, приходится гасить композитор для отдельных приложений. У третьего вообще два монитора с разной частотой. Приходится бегать и подбирать костыли под свою комбинацию.

Слава богу в этом больше нет необходимости и можно использовать вейленд.

altwazar ★★★★★
()
Ответ на: комментарий от altwazar

Я пробовал для интереса сравнивать производительность игр в KDE на Wayland и иксах. Под вяленым все работало хуже, как раз из-за неотключаемого V-Sync. А в иксах кдеешный композитор просто отключался при запуске игры, и всё работало.

Werenter ★★☆
()
Ответ на: комментарий от Werenter

Под вяленым все работало хуже, как раз из-за неотключаемого V-Sync.

VSync там отключается (кроме нвидия, там баг обещали в 545 драйвере поправить). Но без vsync-а будет тройная буферизация. С ней нет тиринга, на производительность она негативно не влияет, но это доп. задержка относительно игры с тирингом (до +1 кадра). Если фпсов игра выдает мало, то +1 кадр становится уже ощутимой проблемой.

Из-за возможности свободно включать/выключать композитор в kde и привык к этой DE. Костыльно, всплывающие окна перестают нормально работать, альтабы долгие, но позволяло подстроиться под ситуацию. В одних играх композитор мешал, в других играх встроенный vsync был ужасен или его вообще не было, да и за пределами игр удобнее жить с композитором.

altwazar ★★★★★
()
Ответ на: комментарий от altwazar

Приходится бегать и подбирать костыли под свою комбинацию.

Не приходится. Вероятно, это если херней не заниматься.

МАТЕ что без компо, что с picom (с unredirect) ни тиринга ни тормозов.

mrjaggers
()
Ответ на: комментарий от altwazar

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

Он вообще в принципе вегда был и всегда будет. Это только эппл может себе позволить работать только вот на этих железках только в этих версиях и варианты можно по пальцам пересчитать. А у остальных есть десятки тысяч комбинаций и их все надо поддерживать.

Да, Х сильно фрагментирован и тянет легаси, но ведь вайланд тоже сильно фрагментирован и там конкурируют несовместимые реализации со своими собственными надстройками и результат предсказуемо хаотично-дерьмовый. Что под капотом в винде хз, но временами вылезают (и ещё чаще вылезали раньше) всякие кривые конфигурации где так же приходилось бороться с чем то. А в андроиде вообще только 10-20% аппаратно-программных комплексов работают достаточно вменяемо чтобы всё поддерживать, не лагать и не фризить.

kirill_rrr ★★★★★
()
Ответ на: комментарий от kirill_rrr

Да, Х сильно фрагментирован и тянет легаси, но ведь вайланд тоже сильно фрагментирован и там конкурируют несовместимые реализации со своими собственными надстройками и результат предсказуемо хаотично-дерьмовый.

Но в разрезе вертикальной синхронизации и вывода картинки на экраны в целом там всё предсказуемо и нормально работает из коробки.

altwazar ★★★★★
()
Ответ на: комментарий от altwazar

Ну не знаю... Я вайланда пока видел только в гноме и там не нормально. Тиринга конечно нет, но видеокарты под минималки Скайрима в вайне хватает только на вывод 2 окошек в панораму, с 3-его просаживается фпс (а если я заметил значит куда то в район 20-30). Для сравнения у kwin/Х11 в тех же условиях можно в панораме столов с кучей окон смотреть видео в плеере, фризы незначительны, фпс не проседает.

Кстати, о гноме и вайлнде. Принципиально отрыв графического сервера и композитора с эффектами даёт положительный эффект. Если в композиторе что то лагает, то в окне - совсем не обязательно. А в том же гноме видео в плеере встаёт пока не подгрузится/отрисуется/завершится какой нибудь эффект. Например просто тупо открытие менюшки из трея - в том же гноме, но на Х11 нету.

З.Ы. Собственно в КДЕ тоже не нормально, потому что у меня оно просто не стартует.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 2)
Ответ на: комментарий от mrjaggers

МАТЕ что без компо, что с picom (с unredirect) ни тиринга ни тормозов.

У меня тоже Mate, если вы не обратили внимание:

services.xserver.desktopManager.mate.enable = true;

Пробовал и без композитора, и с Marco, и с picom. Везде был тиринг.

Это, видимо, вам так повезло или мне не повезло.

czan
() автор топика
Ответ на: комментарий от Werenter

Compiz 0.9 — плюсовая убунтовская ветка на Launchpad, а Compiz Reloaded 0.8 — продолжение оригинального сишного Compiz'а от проекта Compiz Reloaded на GitLab.

posixbit ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.