Dlaczego gry na Linuksa się zacinają? Oto możliwe powody

Dlaczego gry na Linuksa się zacinają?  Oto możliwe powody

Linux dokonał imponujących postępów w zakresie dostępności dla graczy wszystkich gatunków, od najbardziej zapalonych entuzjastów malowania map po najbardziej konkurencyjne strzelanki. Pomimo tego wszystkiego, wciąż istnieją wyzwania związane z kompatybilnością gier z wielu różnych źródeł, w tym ze spójnością liczby klatek na sekundę. Jesteśmy tutaj, aby zbadać, dlaczego wiele gier, które nie wymagają dużego wykorzystania zasobów, w niewytłumaczalny sposób cierpi, nawet gdy są wyraźnie przeniesione do gry na Linuksie.

Czasami OpenGL to wszystko, co masz

OpenGL to świetny sposób na tworzenie wieloplatformowego renderowania 3D bez konieczności przenoszenia wszystkiego. Jeśli programista próbuje wydać grę na systemy Windows, Linux i Mac, tradycyjna ścieżka najmniejszego oporu polega na skoncentrowaniu największej finezji na największej grupie demograficznej (Windows, DirectX) i przeniesieniu gry za pomocą OpenGL dla wszystkich innych.

Linuxdisplay Opengl

Ponieważ OpenGL nie komunikuje się z GPU tak bezpośrednio, jak DirectX i Vulkan, prowadzi to do większej zależności od procesora, a tym samym do nieco niższej wydajności w wielu sytuacjach.

Ponieważ MoltenVK istnieje teraz dla komputerów Mac, a ludzie mogą uruchamiać Vulkan we wszystkich popularnych systemach operacyjnych, używany interfejs API jest kwestią wyboru. Nowi twórcy gier mogą całkowicie zrezygnować z OpenGL i po prostu polegać na Vulkan. Niestety, duża liczba gier przeniesionych na Linuksa będzie nadal opierać się na OpenGL, który nie może dorównać wydajnością DirectX w sytuacjach, w których kluczowa jest wysoka wydajność.

Vulkan wciąż ma wiele do pokonania

Odpowiedź Linuksa na DirectX, Vulkan, jest pomysłem ponad 170 niezależnych organizacji i programistów, którzy jako społeczność postanowili zapewnić wysokowydajny, niskopoziomowy interfejs API, który można wykorzystać na różnych platformach. Od czasu premiery w lutym 2016 r. stał się potworem i (zamierzonym kalamburem) zmieniaczem gry dla twórców grafiki na całym świecie, znacznie przewyższając swoją wagę i, w wielu przypadkach, przewyższając wydajnością DirectX.

To wszystko w porządku, ale jeśli doświadczasz jąkania w grze, która została przeniesiona na Linuksa przy użyciu Vulkan API, to wspaniałe osiągnięcie może nie zrobić na Tobie takiego wrażenia. W rzeczywistości Vulkan ma kilka niedociągnięć, z których jednym jest stabilność na ekranie.

Analiza opublikowane przez HWRIG porównujące wydajność między Windows DX12 i Vulkan przy użyciu narzędzi do testów porównawczych, pokazuje, że chociaż Vulkan osiąga średnią liczbę klatek o 5 procent wyższą niż DX, minimalna liczba klatek spada niżej.

W rzeczywistych zastosowaniach przekłada się to na częstsze występowanie zacinania się podczas pracy z dużym obciążeniem grafiki. To powiedziawszy, ważne jest, aby pamiętać, że Vulkan może być fantastyczny, gdy projektuje grę wokół niego, a nie jest przedstawiany jako refleksja.

Dobrym tego przykładem jest Valheim, sandbox survivalowy wydany w lutym 2021 roku. Zmuszenie gry do działania na Vulkan znacznie zwiększa wydajność w porównaniu do DX12.

Może nawet nie być związany z GPU

W systemie Linux, podobnie jak w systemie Windows, na wydajność procesora mają wpływ ustawienia zarządzania energią w systemie. Jeśli grasz w grę, która ma dużo procesora bez użycia dużej ilości GPU (na przykład gra z wielkimi strategiami do malowania map, taka jak Hearts of Iron lub Europa Universalis) i doświadczasz spadku wydajności, to Linux może pchać twoją CPU do gubernatora „powersave”. Dzieje się tak często, jeśli korzystasz z laptopa zasilanego bateryjnie.

Procesor wyświetlacza Linux

W większości nowoczesne procesory i energooszczędny kontroler dobrze ze sobą współpracują, ale czasami zapewniają zauważalne opóźnienie podczas grania. Aby temu przeciwdziałać, możesz użyć auto-cpufreq, aby laptopy działały wydajniej i zwiększyły wydajność procesora, szybko przełączając przepustnicę na „wydajność”, gdy najbardziej tego potrzebujesz.

Czytać  Jak używać tcpdump do przechwytywania pakietów?

Porty Linuksa są nadal (w dużej mierze) refleksją

Chociaż zaobserwowano udział Linuksa w torcie wszystkich platform desktopowych stały wzrost w ostatniej dekadzie przy obecnej wartości 2,4%, co jest wciąż bardzo niską wartością w porównaniu do gigantów, z którymi konkurują Apple i Microsoft. Niestety oznacza to, że wielu twórców gier szybko przeniesie swój produkt do Linuksa, nie przywiązując dużej wagi do optymalizacji. W tym momencie są bardziej skoncentrowani na terminie wydania niż na zaspokojeniu potencjalnego dwupunktowego plus procentu bazy graczy.

Pomijając problemy z wydajnością, w latach od połowy 2010 roku społeczność graczy Linuksa zyskała wiele miłości w postaci wysoce akceptowalnych opcji gry i lepszej wydajności, jako efekt wysiłków programistów Linuksa i twórców gier. sami redaktorzy.

Problemy ze sterownikiem graficznym

Pierwszą rzeczą, której należy unikać, jeśli nie doświadczasz takiej samej wydajności w przeniesionej grze, jak w jej wersji na inny system, jest sterownik graficzny. Jeśli używasz Noveau lub dowolnego innego domyślnego sterownika open source, jest to najbardziej prawdopodobny winowajca.

Aby uzyskać najlepszą możliwą liczbę klatek na sekundę w swoich grach, z wyjątkiem wszelkich innych ograniczeń, musisz zainstalować najnowsze sterowniki dla swojego GPU. Jeśli używasz karty Nvidia w Ubuntu lub innej dystrybucji Linuksa opartej na Debianie, zapoznaj się z naszym przewodnikiem, aby dowiedzieć się, jak zainstalować zastrzeżone sterowniki.

Problemy z dwoma monitorami

Jeśli używasz dwóch monitorów w swojej dystrybucji i jesteś sfrustrowany słabą wydajnością FPS podczas próby grania w gry, odłącz jeden z nich i uruchom ponownie grę. Nagle uzyskujesz cudownie maślaną płynność?

Linuxwyświetla dwa monitory

Jeśli Twoja odpowiedź brzmi „tak”, możesz to naprawić, bawiąc się ustawieniami graficznymi Nvidii. Czasami skalowanie ekranu nie działa zbyt dobrze podczas korzystania z konfiguracji z dwoma monitorami, więc pomocne może być przeniesienie tej pracy do samego GPU.

Aby to zrobić, przejdź do panelu sterowania Nvidii, przejdź do „Dostosuj rozmiar i położenie pulpitu” i wybierz „GPU” z menu rozwijanego w sekcji „Wykonuj skalowanie”.

Linuxdisplay Nvidiapanel

Po wykonaniu tej czynności, jeśli nie zauważyłeś jeszcze żadnych wzrostów wydajności, upewnij się, że nie masz innych wąskich gardeł w swoim sprzęcie. Sprawdź, czy masz wystarczającą moc procesora i pamięci RAM, aby uruchomić grę i renderować to, co masz na drugim monitorze. W najgorszym przypadku będziesz musiał żyć z wyłączeniem drugiego monitora przed uruchomieniem gry, dopóki nie wyeliminujesz wąskiego gardła sprzętowego.

Częste pytania

1. Czy OpenGL jest ogólnie zły?

Fakt, że Vulkan i DX przewyższają OpenGL pod względem ogólnej wydajności, nie czyni tego ostatniego nieistotnym. Gry, które nie są oparte głównie na bardzo szczegółowych środowiskach graficznych (takich jak Factorio, EU IV, HoI4 itp.), nie potrzebują dodatkowej wydajności osiąganej przez interfejsy API niższego poziomu. Przenoszenie wszystkiego do Vulkan nie ma sensu z punktu widzenia programisty w tych przypadkach, ponieważ tworzy dużo nudy, której można by uniknąć, używając czegoś prostego, takiego jak OGL.

Czytać  Co to jest Shebang i jak używać tej sekwencji znaków w systemie Linux?

Z perspektywy programisty, jeśli możesz uniknąć używania Vulkan lub DirectX, aby wcisnąć wydajność do swojej gry, możesz skupić się bardziej na dopracowaniu produktu przed uruchomieniem i utrzymaniu go po nim. Jest to niewidoczna korzyść dla gracza, która objawia się w postaci ogólnie lepszych wrażeń z gry.

2. Co to jest kontroler procesora?

Gubernator procesora to sposób, w jaki system operacyjny informuje procesor, jakiego zakresu częstotliwości zegara ma używać. Regulator wydajności zawsze powie procesorowi, aby wysysał tyle soku, ile chce i robił to, co mu się podoba. W przeciwieństwie do tego, regulator oszczędzania energii będzie trzymał wodze na procesorze, aby priorytetowo traktować mniejsze zużycie energii.

3. Co jeszcze mogę zrobić, aby poprawić wydajność gier w systemie Linux?

Oprócz wskazówek podanych w tym artykule, oto kilka innych rzeczy, które mogą pomóc:

  • Zaktualizuj sterowniki, aby upewnić się, że system operacyjny wie, jak komunikować się z procesorem graficznym w najbardziej wydajny sposób.
  • Aktualizuj jądro, aby Linux był lepiej przygotowany do bezpiecznej i wydajnej pracy z Twoim sprzętem.
  • Wypróbuj różne środowiska graficzne, takie jak KDE, GNOME, Budgie lub LXDE. Możesz zauważyć lepszą wydajność w niektórych. Osobiście zauważyłem pewne problemy z wydajnością XFCE w środowiskach graficznych, a wielu użytkowników Linuksa zgłaszało to samo, więc nie wspomniałem o tym środowisku graficznym.

Kończący się

Ważne jest, aby spojrzeć na to z innej perspektywy: Linux nie jest idealnym systemem operacyjnym dla graczy, ale jest zbyt wiele razy. lepszy niż konkurencja. Ponieważ programiści poważniej traktują nowicjuszy ze świata Linuksa w swoich społecznościach, podejmują większe wysiłki, aby zoptymalizować swoje gry pod kątem systemu operacyjnego.

Od najtrudniejszych czasów na początku XXI wieku Linux poczynił znaczne postępy w różnych działach i teraz zaczyna kwitnąć jako system operacyjny, który wita tych, którzy chcą wprowadzić swoje gry. Steam ma również duży wkład w rozwój Protona, który wykorzystuje biblioteki takie jak VKD3D do tworzenia gier, które były dostępne wyłącznie dla systemu Windows i były w pełni grywalne w systemie Linux.

Możesz również zaangażować się w to, odwiedzając fora dyskusyjne swoich ulubionych gier i sprawiając, że Twój głos będzie słyszany jako gracz Linuksa. Dla programistów ważne jest, aby wiedzieć, że ich grupa demograficzna spoza systemu Windows składa się z prawdziwych ludzi, a nie tylko małego segmentu ich statystyk użytkowania i zakupów.

Powinieneś także zapoznać się z kluczowymi funkcjami, które sprawiają, że monitory są idealne do gier.

Czy ten artykuł jest przydatny?