Firma Feral Interactive wydanie optymalizatora , zrealizowanego jako proces w tle, który na bieżąco zmienia różne ustawienia systemowe Linux, aby osiągnąć maksymalną wydajność aplikacji gier. Kod projektu został napisany w języku C i na licencji BSD.
Dla gier sugeruje się użycie specjalnej biblioteki libgamemode, która pozwala w czasie wykonywania gry na włączenie określonych optymalizacji, które nie są stosowane domyślnie w systemie. Dostępna jest także wersja biblioteki do uruchamiania gry w trybie automatycznej optymalizacji (załadowanie libgamemodeauto.so przez LD_PRELOAD przy uruchamianiu gry), bez konieczności wprowadzania zmian w kodzie gry. Włączenie różnych optymalizacji można kontrolować przez plik konfiguracyjny.
Na przykład, za pomocą GameMode można wyłączać tryby oszczędzania energii, zmieniać parametry przydziału zasobów i harmonogramowania zadań (CPU governor i SCHED_ISO), przestawiać priorytety wejścia/wyjścia, blokować uruchomienie wygaszacza ekranu, włączać różne tryby zwiększonej wydajności w GPU NVIDIA i AMD, przeprowadzać podkręcanie GPU NVIDIA oraz uruchamiać skrypty z określonymi optymalizacjami od użytkownika.
W wydaniu 1.5 dodano dynamiczną zmianę regulatora trybów CPU (CPU governor) dla procesorów Intel z wbudowanym GPU, gdy korzystanie z trybu „performance” prowadzi do spadku wydajności subsystems graficznej przy dużym obciążeniu GPU. W takim przypadku przejście na tryb „powersave” pozwala zmniejszyć zużycie energii CPU i uwolnić więcej zasobów GPU (CPU i GPU mają wspólny budżet zasilania, a priorytetowe przydzielanie zasobów CPU prowadzi do obniżenia częstotliwości GPU). W przypadku CPU i7-1065G7 proponowana optymalizacja pozwala zwiększyć wydajność gry Shadow of the Tomb Raider o 25-30%.
W GameMode 1.5 wprowadzono również nowy zestaw API D-Bus, wykorzystujący mechanizm ‘pidfd’ do obsługi sytuacji z ponownym wykorzystaniem PID (pidfd łączy się z konkretnym procesem i nie zmienia się, podczas gdy PID może być powiązany z innym procesem po zakończeniu aktualnego procesu skojarzonego z tym PID).
Źródło: opennet.ru
