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ń.
 

3 komentarze

  1. Mogliby dodać chociaż skrypt budujący dla paczek deba ( ͡° ʖ̯ ͡°)

    Osobiście trochę mnie irytuje wrzucanie binarek w system. Przy jednym projekcie powiedzmy, że jeszcze to ujdzie ale przy większej ilości łatwo zapomnieć, że coś się wrzucało. Potem człowiek zapomina a binarki mu się gryzą z systemem po aktualizacji. W przypadku deba albo nie dość że miałbym paczkę na liście to jeszcze mógłbym ją szybko wywalić w każdej chwili.

  2. Mogliby dodać chociaż skrypt budujący dla paczek deba ( ͡° ʖ̯ ͡°)

    Osobiście
    trochę mnie irytuje wrzucanie binarek w system. Przy jednym projekcie
    powiedzmy, że jeszcze to ujdzie ale przy większej ilości łatwo
    zapomnieć, że coś się wrzucało. Potem człowiek zapomina a binarki mu się
    gryzą z systemem po aktualizacji. W przypadku deba albo nie dość że
    miałbym paczkę na liście to jeszcze mógłbym ją szybko wywalić w każdej
    chwili.

    Edit:

    O proszę, jednak jest skrypt budujący deba. Jakby ktoś szukał:
    https://salsa.debian.org/ga

    Źródło:
    https://github.com/FeralInt
    W linku wyżej jest też ^ ppa jakby ktoś chciał.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Post comment

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.