GameMode 1.2 bez wytchnienia

Chyba żadna dziedzina w komputeryzacji naszej codzienności nie przesunęła limitów do granic możliwości jak… Gry. Te pisane ku naszej uciesze programy z roku na rok wymagają coraz to większych ilości pamięci, szybkich nośników oraz bezkompromisowej mocy CPU oraz GPU. A co jeśli odmiennego zdania jest nasz system operacyjny, który stawia na pierwszym miejscu uniwersalność naszego komputera? I wcale nie zamierza rozgrzewać do czerwoności CPU na życzenie jakiejś tam gry? Cóż, taki system należy poskromić.

Posłużyć nam może do tego narzędzie GameMode, którego to twórcy na kanwie powyższych przemyśleń zauważyli, że ich gry portowane na Linuksa działają niekiedy z różną wydajnością. Tak, ich gry – bo mowa tutaj o firmie Feral Interactive, którą zna chyba każdy gracz linuksowy.

Ten programik tak naprawdę nie jest magicznym zestawem nieznanych do tej pory sztuczek w assemblerze. To teoretycznie proste rozwiązanie, które ma na celu poinformować nasz system i CPU by na czas gdy mamy uruchomioną grę przełączyć się w tryb Performance. Początkowo miało to być rozwiązanie zintegrowane z konkretnymi grami i deaktywujące tryb PowerSave on Demand w procesorach Intela oraz AMD. Jednak z czasem ewoluowało to do oddzielnej biblioteki i demona działającego w tle.

Zmiana wykorzystania mocy CPU to nie jedyny zabieg jakiego podejmuje się GameMode. Jeżeli dysponujemy w kernelu polityką SCHED_ISO (kernel lowlatency? Dla Arch Linuksa kernel *-ck), to program ustawi większy priorytet dla naszej gry (-4).

Niestety, jeżeli ktoś spodziewa się ładnego GUI, to srodze się zawiedzie. Na dzień dzisiejszy użytkowania GameMode przypomina zmagania z ustawieniami pamięci EMM w config.sys dla DOSu. Program należy oczywiście skompilować (nie jest to na szczęście skomplikowane), uruchomić, a następnie… Odpowiednio uruchamiać gry aktywując biblioteki odpowiedzialne za kontrolowanie zarządcy procesora:

#$ LD_PRELOAD=/usr/\$LIB/libgamemodeauto.so.0 ./nazwa-gry

Nieco łatwiej mają użytkownicy Arch Linuksa i Manjaro:

yaourt -S gamemode

Wobec powyższego GameMode wydaje się warte zachodu, gdy stwierdzamy faktyczne braki w wydajności jakiejś gry. Nie jest to rozwiązanie uniwersalne – co więcej, niektóre gry mają problemy po aktywowaniu SCHED_ISO.

Czy to przynosi efekty? Trudno ocenić bez samodzielnych pomiarów i porównań.