JAK OPTYMALIZOWAĆ GRY POD LINUXEM i MIERZYĆ WYDAJNOŚĆ?
hejto.plArtykuł trochę pisany pod siebie, bo słynę ze sklerozy w takich tematach, a potem muszę się przekopywać przez temat ponownie na nowych urządzeniach i tracić czas. Dzisiaj opiszę proces dodawania miernika do gier, głównie odpalanych przez Steam, wliczając w to te działające z pomocą Protona. Jak ktoś ma starszego laptopa i nawet stare gry potrafią - ciul wie czemu - działać jak pralka frania z wrzuconą cegłą do bębna, ten poradnik może wam się przydać. Użyjemy programu MangoHud, który przypomina te wszystkie mierniki obciążenia w grach, jak MSI Afterburner, ale ma coś, czego próżno szukać pod Windowsem, bez grzebania w ustawieniach karty graficznej. Ograniczanie maksymalnej liczby klatek na sekundę.
Gry - zwłaszcza stare, choć nowe indyki też - potrafią odpalać się z nierealną liczbą generowanych klatek, a nie wszędzie da się odpalić Vsync, czyli synchronizację z monitorem/wyświetlaczem. Sam miałem sporo problemów z tym, zwłaszcza używając Protona, czyli wbudowanej w Steam opcji na odpalanie tytułów windowsowych. MangoHud rozwiąże te problemy we w miarę prosty sposób.
Czego potrzebujesz?
-
Linuxa, w moim przypadku Mint, choć podobnie to działa na Ubuntu i pod Debianem. Inne dystrybucje mają własne instrukcje instalacji. Jak nie jesteś pewny, sprawdź konkretną instrukcję dla twojej dystrybucji TUTAJ.
-
nano - czyli w wielu dystrybucjach domyślnego edytora tekstu, który działa w terminalu. Jak nie macie go zainstalowanego, na pewnym etapie wyskoczy komunikat, że czegoś nie znaleziono w systemie. Można wtedy go zainstalować, użyć czegoś innego lub dodać plik konfiguracyjny ręcznie.
-
Steama, choć instrukcje da się też wrzucić w inne, pozasteamowe tytuły. Jak to się wrzuca w gry niesklepowe? Nie wiem. Może google wam pomoże.
[ 1 ] Zaczynamy od instalacji MangoHuda, w terminalu wpisujemy:
sudo apt install mangohud
i podajemy hasło administratora systemu [roota]. Gdy zostaniemy poproszeni o potwierdzenie. Wpisujemy zależnie od języka w terminalu Y lub T i klikamy ENTER. Gotowe, o ile nie wywaliło żadnych błędów, mamy nasz program. Jest gotowy do użycia, choć nie ma jeszcze naszych opcji wyświetlania, tylko domyślne, jak fps, obciążenie karty graficznej i procesora. Jeżeli potrzebujesz tylko tego, przeskocz do kroku 3.

[ 2 ] Tworzymy domyślny plik konfiguracji. W terminalu wpisz:
mkdir -p ~/.config/MangoHud
Następnie:
nano ~/.config/MangoHud/MangoHud.conf
To powinno wywołać edytor tekstu, który może trochę przytłoczyć, ale spokojnie.
Wpisujemy w nim dwa podstawowe mierniki, czyli fps i frametime, jak na obrazku niżej:
W moim przypadku nazwa to nowy bufor, bo odpaliłem sam edytor, u was będziecie edytować plik MangoHud.conf.
Kombinacja CTRL + O zapisze taki plik, co powinniśmy zatwierdzić klawiszem ENTER
Po wszystkim wychodzimy z nano kombinacją CTRL+X. Jeżeli zostaniecie zapytani, czy zapisać ten plik, pewnie coś w nim zmieniliście po ostatnim zapisaniu lub nie został poprawnie zapisany. Dobra pusty terminal, co teraz?
[ 3 ] Dodajemy w opcjach gry dodatkowy argument.
Wchodzimy do biblioteki Steam'a i szukamy naszej gry. Na jej karcie szukamy koła zębatego, gdzie wybieramy ostatnią opcję, czyli z moim przypadku "Properties", w waszym mogą być "Właściwości". Powinien nam się ukazać panel jak na screenie niżej.
Nas interesują zaawansowane opcje włączania, czyli pole tekstowe, które u was powinno być puste, na dole okienka ustawień ogólnych. Tak, jak w moim przypadku wrzucacie tam:
MANGOHUD=1 %command%
I zamykacie to okienko. Samo się zapisze. W innych aplikacjach powinno to działać podobnie.
[ 4 ] Testujemy czy program działa. Odpalamy grę przez zielony przycisk Steama i w lewym górnym rogu ekranu powinno się wyświetlić okienko z klatkami na sekundę i frametime. Gitarka, prawie gotowe. Zamykamy grę. Jak coś nie działa, musicie prześledzić czy wszystko zrobiliście według instrukcji. Jeżeli wasz Steam był instalowany przez Flatpacka, to musicie zainstalować MangoHuda też flatpackowego. Tam konfiguracja jest trochę inna, ale z pomocą przyjdzie program Goverlay. On graficznie zrobi wszystko to, co my robimy ręcznie.
[ 5 ] Dodajemy mój plik konfiguracyjny z większością potrzebnych opcji. Możemy to zrobić na dwa sposoby. Edytujemy plik tekstowy ponownie za pomocą nano, dosłownie wykonując tę samą kombinację jak wcześniej lub szukamy pliku konfiguracyjnego w plikach i edytujemy jak człowiek zwykłym edytorem tekstu. Ja wybieram opcję nr 2. Wasza wola co zrobicie wy.
Nasz plik zapisany jest w lokacji ./config/, a zobaczyć go możecie, wchodząc w folder domowy [ten główny], klikając na panelu górnym "Widok" i zaznaczyć "Wyświetlanie ukrytych plików". Wtedy wchodzimy w ./config/MangoHud/ i otwieramy w zwykłym edytorze tekstu plik MangoHud.conf . Wklejamy tam ten kod zamiast tego, co dodaliśmy wcześniej:
## USTAWIENIA MangoHuda by Kardynał Dziwisz # Żeby coś wyłączyć, wystarczy zostawić # przed daną opcją. # np. # no_display sprawi, że panel będzie od początku widoczny # bez potrzeby ręcznego wyświetlenia za pomocą kombinacji # prawego Shifta i F12 # LIMIT FPS i VSYNC fps_limit=40 vsync=1 gl_vsync=1 # DOMYŚLNIE UKRYJ PANEL no_display # SKRÓT KLAWISZOWY DO WYŚWIETLANIA toggle_hud=Shift_R+F12 # POZYCJA PANELU I WIELKOŚĆ CZCIONKI # OPCJE: top-left (default), top-right, middle-left, middle-right, # bottom-left, bottom-right, top-center, bottom-center position=top-left font_size=16 # ZAOKRĄGLENIE TŁA round_corners=10 # PRZEZROCZYSTOŚĆ PANELU [skala 0-1] alpha=0.7 # PODSTAWOWE KOLORY - TEKST i TŁO text_color=ffffff background_color=354f52 # KOLORY KOMPONENTÓW cpu_color=cad2c5 gpu_color=cad2c5 vram_color=84a98c ram_color=84a98c frametime_color=52796f engine_color=52796f io_color=52796f wine_color=52796f # CO CHCEMY WYŚWIETLIĆ # CZAS time # MIERNIKI fps frametime histogram cpu_temp gpu_temp cpu_stats gpu_stats ram vram
Zapisujemy i odpalamy grę. Powinniście nie zobaczyć nic, bo od teraz panel wywoływany jest kombinacją PRAWY SHIFT + F12. Możecie tę kombinację zmienić według własnych potrzeb. W pliku jest też informacja gdzie sprawić, by panel był zawsze widoczny i gdzie zmieniamy opcje związane z klatkami na sekundę i vsync, który ma dwie opcje. Pod OpenGL i pod Vulkana [ten bez gl_ w nazwie]. Opcja ta nie jest idealna, bo najczęściej nadpisuje ją sama gra, ale można spróbować. Dodatkowo na githubie macie więcej opcji graficznych, ale mnie wystarczają takie.
Po odpaleniu panelu RSHIFT+F12 w grze zobaczymy to:
Kolory możecie sami edytować. Zostawiłem w kodzie informację, gdzie są. Sam brałem hexy z TEJ STRONY. Jak chcecie domyślnych MangoHuda, po prostu wywalcie tę część kodu.
Co zyskaliśmy? Od teraz nasz gruz nie generuje zbędnych 200 klatek, wykorzystując całą moc obliczeniową, mimo że wyświetlacz ma ograniczenie do 60. Czyli będzie ciszej i płynniej. Domyślnie Vsync będzie dobijał do maksymalnej wartości obsługiwanej przez monitor/wyświetlacz. W moim przypadku 60fps. Mój malutki komputerek [Beelink SER5] nawet przy Rizenie ma problem ze stabilnością i wahania były od 40 do 60 klatek. Skoki płynności. W taki sposób zawsze będzie tak samo, 40 klatek i nie muszę się wkurzać na dziwne przyspieszenia.
NA CO UWAŻAĆ?
Tak jak pisałem w punkcie 4, jeżeli macie program [STEAM/GOG/Cokolwiek co odpala gry] zainstalowany przez Flathuba, to MangoHud też musi być zainstalowany przez Flathuba. W takim wypadku konfigurację dokonuje się przez program Goverlay. Tu nie pomogę, bo bawiłem się nim chwilę, ale z moim Steamem nie działał.
Ile dystrybucji, tyle problemów. Jak coś nie pyknie, polecam szukać pomocy u ChataGPT. Wbrew pozorom jest do tego dobry, jak podacie mu wystarczająco dużo informacji. Zwłaszcza warto sobie sprawdzić, jak się to instaluje w jakiej dystrybucji. Ten poradnik na 100% powinien działać na najnowszym Mincie, Ubuntu i najprawdopodobniej Debianie. Z modyfikacjami na Fedorze, OpenSuse, Solusie i przez Flatpak.
Jak wybrać dobry limit FPS? Dużo zależy od waszego urządzenia i tego ile chcecie poświęcić, żeby było stabilnie. To też dobry sposób na dbanie o temperaturę procesora i karty. Jak chcecie niższej, bo wiatraki lecą na księżyc, warto spróbować niższych wartości. 30 to takie absolutne minimum, 60 to wartość raczej optymalna. Jak FPS skacze wam między 40, a 80, to może 50 będzie optymalne. Liczy się to, by nie było wielkiej różnicy między wartościami mimalnymi i maksymalnymi. Limit jest ważny tylko gdy chcecie zejść niżej, niż nominalna wartość obsługiwana przez monitor. Jak macie 60Hz, a klatki są na poziomie 80, to wystarczy odpalić Vsync=1 i gotowe. Bez zabawy w limity. Warto to zrobić, bo nadmiarowe klatki powodują lagi w obrazie.
Pisałem to kilka godzin, ale pewnie i tak wyjdzie ..., więc no, przepraszam. xD
Jest szansa, że zadziała na SteamDecku.
> #poradydziwena <
#linux #grykomputerowe #gry #poradnik #linuxmint #steam #linuxgaming
Nie jestem specem od linuxa. Po prostu z niego korzystam z doskokami od kilku lat. Nadal mam komputer z Windowsem 11, bo tam część gier po prostu działa, bez wazektomii jądra. xD




