Как использовать picom с i3 на видеокарте Intel под OpenBSD

Опубликовано 15.10.2024 в OpenBSD

Дано: ноутбук с видеокарточкой Intel(R) HD Graphics 620 (KBL GT2) под управлением OpenBSD-current. Соответственно, эксплуатируется штатный X-сервер (точнее, местный его форк Xenocara) с легковесным оконным менеджером i3.

И вся вот эта легковесная и насквозь не перегруженная конфигурация демонстрирует из коробки... злющий тиринг при просмотре видео или, там, играх в игрульки (ох уж эти игровые ноутбуки на базе OpenBSD...). А тиринг тут вот почему: нынче стильным, модным и молодежным драйвером для более-менее современных видеочипов Intel является драйвер modesetting, который в моем случае иксы употребят безо всякого вовсе конфига. Однако, в драйвер этот всё никак не доедет патч, устраняющий этот самый тиринг, точнее, добавляющий драйверу modesetting опцию для настройки оного устранения аналогично существовавшей в более древнем драйвере intel (использовать который на этом чипе я крайне не рекомендую - будут рандомные фризы системы).

Как это лечить? Да проще простого, достаточно лишь поинтересоваться, почему пользователи не легковесных WM, а жирных перегруженных DE никакого тиринга на аналогичной конфигурации в упор не наблюдают: в жирных DE есть свой встроенный композитор, организующий буферизованный вывод и, собственно, композитинг изображений. И для нас, пользователей легковесных WM, есть аналог: легковесный же композитор picom, устраняющий тиринг, добавляющий нужным приложениям прозрачности и позволяющий поразвлекаться со всякими прочими визуальными эффектами, вроде блюринга неактивных окон, теней, скругленных углов и тому подобной ерунды, которой я лично не пользуюсь.

Так вот, всё, что нам нужно - это засунуть себе в ~/.xsession запуск этого picom - можно даже особо не заморачиваться с конфигом оного, указав просто нужные опции при старте (man picom в помощь).

И еще один маленький нюанс: при использовании оконного менеджера i3, у меня изредка появлялся раздражающий баг - при переключении между окнами\рабочими областями, декорации некоторых окон и их заголовки начинали мерзко так мерцать. А иногда мерцали и приложения на QT, например, Telegram. Лечится это запуском picom в .xsession со следущими ключиками:

picom --backend glx --vsync --xrender-sync-fence &

Собственно, последний ключик, --xrender-sync-fence и устраняет упомянутые мерцания.

Вот при таком раскладе все работает шустро, гладко и красиво.