Firma interaktywna Feral wydanie optymalizatora , wdrożony jako proces w tle, który zmienia różne ustawienia systemu w locie Linux Aby osiągnąć maksymalną wydajność aplikacji do gier. Kod projektu został napisany w języku C i na licencji BSD.
W przypadku gier proponuje się użycie specjalnej biblioteki libgamemode, która umożliwia zażądanie włączenia niektórych optymalizacji, które nie są domyślnie używane w systemie podczas działania gry. Dostępna jest także opcja biblioteczna umożliwiająca uruchomienie gry w trybie automatycznej optymalizacji (ładowanie libgamemodeauto.so przez LD_PRELOAD przy uruchamianiu gry), bez konieczności wprowadzania zmian w kodzie gry. Włączenie niektórych optymalizacji można kontrolować za pomocą pliku konfiguracyjnego.
Na przykład, używając GameMode, można wyłączyć tryby oszczędzania energii, zmienić alokację zasobów i parametry planowania zadań (zarządzanie procesorem i SCHED_ISO), zmienić kolejność priorytetów we/wy, zablokować uruchamianie wygaszacza ekranu, różne tryby zwiększonej wydajności mogą być być włączone w procesorach graficznych NVIDIA i AMD, a procesory graficzne NVIDIA można podkręcać (przetaktowywanie), uruchamiane są skrypty z optymalizacjami zdefiniowanymi przez użytkownika.
Dodano w wersji 1.5 dynamiczna zmiana regulatora CPU dla procesorów Intel ze zintegrowanym GPU, jeśli użycie trybu „performance” powoduje spadek wydajności podsystemu graficznego przy dużym obciążeniu GPU. W takim przypadku przejście do trybu „powersave” pozwala zmniejszyć zużycie energii przez CPU i uwolnić więcej zasobów GPU (CPU i GPU mają wspólny budżet mocy, a priorytetowe przydzielanie zasobów CPU prowadzi do zmniejszenia częstotliwości GPU). Na CPU i7-1065G7 proponowana optymalizacja pozwala zwiększyć wydajność gry Shadow of the Tomb Raider o 25-30%.
GameMode 1.5 wprowadza także nowy zestaw interfejsów API D-Bus, które wykorzystują mechanizm „pidfd” do obsługi sytuacji ponownego użycia PID-ów (pidfd jest powiązany z konkretnym procesem i nie ulega zmianie, natomiast PID może zostać przypisany do innego procesu po zakończeniu bieżącego procesu powiązanego z tym PID-em).
Źródło: opennet.ru
