· linux games fullscreen kde

Игры, fullscreen, linux - почему KDE лучше всех

Я геймер. Нет, реально, хороший такой геймер, люблю стрелялки (в частности CS (1.5, 1.6), CS:GO, Urban Terror, Xonotic), могу поиграть в minecraft/minetest, даже в MMORPG типа Lineage 2 или Aion. И как и любому любителю стрелялок на уровне чуть выше “любителя” (то есть такой некий полупрофессиональный уровень) меня жутко начинают бесить лаги, которые в большинстве своем заключатся в “дергании” изображения. От этого начинают болеть глаза (в прямом смысле), это начинает жутко бесить и, естественно, падает уровень игры и хочется поскорее выйти, чтобы это мучение прекратилось.

Причин такому поведению изображения может быть несколько:

  • Перегрев видеокарты или процессора.
  • Большой IOWAIT.
  • Композитный менеджер.

Проведя исследование в виде накопления статистики использования ресурсов я пришел к выводу, что первый пункт не виноват - процессор всегда при нагрузке игрой примерно на 60-65 градусах (Core i5-4570), видеокарта - в тех же пределах (nVidia GTX 660). Также не виноват и второй пункт - среднее значение IOWAIT было в районе 5%, что для обычных шпиндельных хардов на SATA3 с файловой системой ZFS очень даже хорошо. Следовательно, остается третий пункт. Вот про него и поговорим.

Почему же возникают такие приколы с композитными менеджерами? Все просто - они используют GPU для отрисовки, причем отрисовка идет с помощью OpenGL, что накладывает определенные ограничения, например, если включен VSync (вертикальная синхронизация). VSync блокирует количество кадров в секунду на значение, равное герцовке мониторов, что в подавляющем большинстве равняется 60 Гц. Из-за этого может возникать эффект, как я его называю, “замедленного ввода”, когда игра (или, собственно, любое другое приложение) как будто получает информацию о нажатии клавиш или о перемещении мышки с задержкой. Нет, конечно, она получает эти данные вовремя, но отрисовываются они не мгновенно, а 60 раз за секунду, в чем, собственно, и заключается проблема. А это, кстати, тоже жутко бесит :).

Как же это может жутко бесить? Очень даже просто. Как “полупрофессионал” могу утверждать, что когда картинка не поспевает за мышкой, теряется точность стрельбы, “ломается” реакция, то есть можно вовремя не среагировать на игровой момент. А в стрелялках, например, дорога каждая миллисекунда.

Как же это можно решить? Просто - отключив композитинг. Однако, отключив его, мы потеряем все “рюшечки” и красивости, которыми композитные менеджеры подкупают обычного пользователя - тени, прозрачности, размытие, анимации. Причем и тут есть нюансы в соответствии с используемым композитным менеджером:

  • Mate, XFCE4 - можно отключить только глобально.
  • Mutter/Clutter-основанные (GNOME3, Cinnamon, etc) - отключить нельзя, от слова “совсем”. Если вдруг есть опция типа “Unredirect fullscreen windows” - тоже ложь, потому что наследуемый контекст OpenGL не может взять и отключить у родительского VSync, например, и будет использовать те же настройки оного. А просто так в этих WM отключить его нельзя, только спецпеременной CLUTTER_VBLANK=none, но и она особо не помогает.
  • compton - можно подтюнить. Но, к сожалению, сейчас у меня годного конфига для работы с nVidia нету. Однако успеха я добивался через ту еще “едрену мать”.
  • KWin (KDE) - просто включить “Разрешать приложениям блокировать режим с графическими эффектами” в настройках экрана. И все. Работает на ура.

Я решил остановиться на последнем пункте - имеем одновременно красоту и максимальную производительность и играх. А достигается эта максимальная производительность очень легко - композитинг отключается, от слова “совсем”, как только какое-либо приложение запрашивает полноэкранный доступ. Несмотря на “жирность” кед - это очень классная фича.

Если вы хотите пользоваться “рюшечками” при повседневных задачах и иметь максимальную производительность - я советую остановить свой выбор на KDE.

  • LinkedIn
  • Tumblr
  • Reddit
  • Google+
  • Pinterest
  • Pocket