Feral Interactive ha rilasciato un ottimizzatore , implementato come processo in background, che modifica dinamicamente varie impostazioni di sistema Linux per massimizzare le prestazioni delle applicazioni di gioco. Il codice del progetto è scritto in linguaggio C e con licenza BSD.
per i giochi si consiglia di utilizzare una libreria speciale chiamata libgamemode, che consente di richiedere l'attivazione di determinate ottimizzazioni durante l'esecuzione del gioco, non applicate di default nel sistema. È disponibile anche una versione della libreria per eseguire il gioco in modalità di ottimizzazione automatica (caricando libgamemodeauto.so tramite LD_PRELOAD all'avvio del gioco), senza la necessità di apportare modifiche al codice del gioco. Le ottimizzazioni possono essere controllate tramite un file di configurazione.
Ad esempio, grazie a GameMode è possibile disattivare le modalità di risparmio energetico, modificare i parametri di distribuzione delle risorse e pianificazione delle attività (CPU governor e SCHED_ISO), ristrutturare le priorità di input/output, bloccare l'avvio del salvaschermo, attivare diverse modalità di aumento delle prestazioni sulla GPU NVIDIA e AMD, effettuare l'overclocking della GPU NVIDIA e avviare script con ottimizzazioni specifiche dell'utente.
Nella versione 1.5 è stata aggiunta la gestione dinamica del regolatore delle modalità CPU (CPU governor) per i processori Intel con GPU integrata, se l'uso della modalità «performance» porta a una diminuzione delle prestazioni del sottosistema grafico sotto carico elevato sulla GPU. In questo caso, passare alla modalità «powersave» consente di ridurre i consumi energetici della CPU e liberare più risorse per la GPU (CPU e GPU condividono un budget energetico e la priorità nella distribuzione delle risorse della CPU porta a una riduzione della frequenza della GPU). Sui processori i7-1065G7, l'ottimizzazione proposta consente un aumento delle prestazioni del gioco Shadow of the Tomb Raider del 25-30%.
In GameMode 1.5, a new set of D-Bus APIs has also been introduced, using the 'pidfd' mechanism to handle situations involving PID reuse (pidfd is linked to a specific process and remains unchanged, while the PID may be associated with another process after the current process associated with that PID terminates).
Fonte: opennet.ru
