La empresa Feral Interactive ha lanzado un optimizador , implementado como un proceso en segundo plano que modifica sobre la marcha varias configuraciones del sistema Linux para lograr el máximo rendimiento de las aplicaciones de juegos. El código del proyecto está escrito en C y bajo licencia BSD.
Para los juegos se recomienda utilizar la biblioteca libgamemode, que permite solicitar la activación de ciertas optimizaciones durante la ejecución del juego, que no se aplican por defecto en el sistema. También hay una versión de la biblioteca para ejecutar el juego en modo de optimización automática (cargando libgamemodeauto.so a través de LD_PRELOAD al iniciar el juego), sin necesidad de modificar el código del juego. Las optimizaciones se pueden controlar a través de un archivo de configuración.
Por ejemplo, con GameMode se pueden desactivar los modos de ahorro de energía, cambiar los parámetros de distribución de recursos y planificación de tareas (CPU governor y SCHED_ISO), reestructurar las prioridades de entrada/salida, bloquear el comienzo del salvapantallas, activar varios modos de alto rendimiento en las GPU NVIDIA y AMD, realizar el overclocking de la GPU NVIDIA, y ejecutar scripts con optimizaciones específicas del usuario.
En el lanzamiento 1.5 se ha añadido el cambio dinámico del regulador de modos de CPU (CPU governor) para procesadores Intel con GPU integrada, si el uso del modo 'performance' provoca una caída en el rendimiento del subsistema gráfico bajo alta carga de GPU. En este caso, el cambio al modo 'powersave' permite reducir el consumo energético de la CPU y liberar más recursos de la GPU (la CPU y la GPU comparten el mismo presupuesto de energía y la asignación prioritaria de recursos de la CPU provoca una reducción en la frecuencia de la GPU). En la CPU i7-1065G7, la optimización propuesta puede aumentar el rendimiento del juego Shadow of the Tomb Raider en un 25-30%.
En GameMode 1.5 también se presenta un nuevo conjunto de API D-Bus, que utiliza el mecanismo 'pidfd' para manejar la situación de reutilización de PID (pidfd se asocia con un proceso específico y no cambia, mientras que el PID puede ser vinculado a otro proceso después de que finaliza el proceso actual asociado a ese PID).
Fuente: opennet.ru
