Licznik pokazuje 180 FPS. Obracasz kamerę, gra zatrzymuje się na ułamek sekundy, a licznik spokojnie wraca do 180, jakby nic się nie stało. Obniżenie wszystkich ustawień daje 240 FPS i dokładnie to samo szarpnięcie. Ponowna instalacja sterownika niczego nie zmienia.
Sprzeczność znika, gdy przestajesz pytać, ile klatek pojawiło się w ciągu sekundy, i sprawdzasz, ile trwała każda pojedyncza klatka. Przy 60 FPS budżet wynosi 16,67 ms. Przy 144 FPS to 6,94 ms. Dziewięćdziesiąt dziewięć klatek może zmieścić się w budżecie, a jedna potrwać 70 ms. Średnia nadal wygląda świetnie. Oczy czują 70-milisekundową pauzę.
Taka pauza ma własny wzór. Zacięcie przy pierwszym pojawieniu się efektu nie jest tym samym problemem co zacięcie na każdej granicy mapy. Równy puls co kilka sekund ma inną przyczynę niż pogarszanie się gry po dwudziestu minutach. W tym poradniku użyjemy tych śladów, zanim zaczniemy przestawiać opcje.
FPS, czas klatki i 1% low to trzy różne odpowiedzi
FPS opisuje przepustowość. Czas klatki opisuje opóźnienie. Łączy je wzór 1000 / FPS,
ale średnia usuwa informację o rozłożeniu klatek w czasie. Nie powie, czy 120 klatek nadchodziło
równo co 8,33 ms, czy w nierównych paczkach.
| Cel | Czas na jedną klatkę | Co oznacza klatka trwająca 50 ms |
|---|---|---|
| 60 FPS | 16,67 ms | Około trzech budżetów klatki w jednym |
| 120 FPS | 8,33 ms | Około sześciu budżetów w jednym |
| 144 FPS | 6,94 ms | Około siedmiu budżetów w jednym |
| 240 FPS | 4,17 ms | Około dwunastu budżetów w jednym |
1% low jest przydatne, ponieważ podsumowuje najwolniejszą grupę klatek zamiast całego przebiegu. Różne narzędzia wyliczają wyświetlany wynik odrobinę inaczej, więc nie traktuj go jak uniwersalnej jednostki laboratoryjnej. Odpowiada na jedno ważne pytanie: czy złe odczucie widać w pomiarze? Nie mówi, dlaczego tak się stało.
Co mówi wzór przycięć
| Kiedy występuje | Najlepszy pierwszy podejrzany | Test rozdzielający przyczyny |
|---|---|---|
| Tylko przy pierwszym użyciu czaru, materiału lub wejściu do nowego miejsca | Kompilacja shaderów albo potoku | Powtórz tę samą czynność. Jeśli drugi przebieg jest czysty aż do usunięcia cache lub zmiany sterownika, kompilacja staje się mocnym tropem. |
| Przy szybkim obracaniu kamerą albo przekraczaniu tej samej granicy mapy | Doczytywanie zasobów, dysk lub presja VRAM | Powtórz trasę. Obniż tylko jakość tekstur. Mniejszy skok kieruje uwagę na pulę tekstur i budżet pamięci GPU. |
| GPU stale pracuje blisko limitu, a obraz szarpie wszędzie | Nasycenie GPU i kolejka klatek | Ustaw rozsądny limit FPS poniżej wartości, którą sprzęt potrafi stale utrzymać. Równiejszy wykres wskazuje na brak zapasu. |
| Użycie GPU spada podczas zacięcia, a jeden wątek CPU jest pełny | Wąskie gardło CPU lub głównego wątku gry | Pokaż procesory logiczne, zmniejsz liczbę NPC albo zasięg widzenia i powtórz tę samą scenę. |
| Co kilka sekund, nawet gdy postać stoi | Nakładka, nagrywanie, odpytywanie czujników, sterownik lub proces w tle | Wyłączaj pojedynczo zbędne nakładki i programy przechwytujące. Regularna usterka zasługuje na regularnego podejrzanego. |
| Dopiero po dłuższym rozgrzaniu komputera | Limit temperatury lub mocy, rosnące użycie pamięci | Zapisuj temperatury, taktowania, moc i pamięć od uruchomienia do pierwszego złego fragmentu. |
| Tylko w grze sieciowej | Sieć lub symulacja serwera, nie renderowanie | Oddziel przycięcie obrazu od teleportowania postaci. Nagraj scenę offline lub tryb treningowy, zanim ruszysz ustawienia grafiki. |
Przycięcia przez kompilację shaderów
Współczesne gry łączą shadery i stany renderowania w obiekty potoku, czyli PSO. Jeśli potrzebna kombinacja nie została przygotowana przed rozgrywką, gra może czekać, aż sterownik ją skompiluje. Epic opisuje dokładnie taki problem w pracach nad Unreal Engine: gdy potrzebny PSO nadal się kompiluje, jego natychmiastowe użycie może zatrzymać klatkę. Najważniejszym śladem jest nowość. Nowy efekt przycina, a jego szybkie powtórzenie często już nie.
Brakującego przygotowania po stronie gry nie naprawisz plikiem rejestru. Pozwól zakończyć prawdziwy ekran kompilacji, nie usuwaj bez przerwy pamięci podręcznej shaderów i sprawdź, czy producent gry wydał poprawkę. Aktualizacja sterownika może unieważnić cache, więc chwilowo gorszy pierwszy start po aktualizacji nie dowodzi, że sterownik jest trwale wadliwy.
Doczytywanie zasobów i presja VRAM
Gra nie trzyma jednocześnie wszystkich tekstur i modeli w pełnej jakości. Doczytuje to, czego wymaga scena. Dokumentacja Unreal Engine opisuje pulę tekstur z budżetem oraz poziomy mip wczytywane lub usuwane, aby się w nim zmieścić. Jeśli konkretna trasa po świecie za każdym razem uruchamia doczytywanie, skok może pochodzić z dysku, dekompresji, pracy CPU, przesyłania do GPU albo usuwania danych z pamięci, gdy bieżący budżet VRAM jest zbyt napięty.
Dlatego obniżenie cieni może nie zmienić nic, a obniżenie tekstur pomaga. Z tego samego powodu zdanie „gra zajęła cały VRAM” nie wystarcza jako diagnoza. Rezerwacja, aktywne użycie i presja budżetu to nie to samo. Osobny poradnik ile VRAM naprawdę potrzebujesz rozdziela te wartości bez zgadywania.
Limit CPU nie oznacza 100% całego procesora
Gra może czekać na jeden krytyczny wątek, podczas gdy pozostałe procesory logiczne mają zapas. Łączne użycie CPU wygląda wtedy niewinnie. GPU może w tej chwili zwolnić, bo procesor nie przygotował kolejnej pracy na czas. Microsoft opisuje to prosto: w grze ograniczonej przez CPU karta graficzna czeka, a w grze ograniczonej przez GPU to karta jest najwolniejszym etapem.
Zmniejszenie rozdzielczości ogranicza głównie pracę GPU. Jeśli problem tkwi w głównym wątku gry, możesz otrzymać wyższą średnią i te same skoki. To nie jest nieudany test. To jest dowód.
Dziesięciominutowy test, który daje użyteczne dowody
- Wybierz powtarzalną scenę. Zapis gry, mapa treningowa albo 30-sekundowa trasa. Losowy mecz sieciowy jest słabym testem, bo obciążenie zmienia się razem z sytuacją.
- Wykonaj jeden przebieg rozgrzewkowy. Przejdź trasę, a potem nagraj drugi raz. Jeśli źle jest tylko za pierwszym razem, zachowaj oba pomiary i opisz je. Różnica jest śladem kompilacji lub cache.
- Zapisz dane każdej klatki. PresentMon to otwartoźródłowa podstawa kilku narzędzi pomiarowych. Potrafi rejestrować czasy CPU, GPU i wyświetlenia dla każdej klatki. Sam licznik FPS nie wystarczy.
- W tej samej chwili zbieraj kontekst systemu. Użycie i pamięć GPU, poszczególne rdzenie CPU, RAM, aktywność dysku, temperatury, taktowania oraz moc. Skok nabiera znaczenia dopiero, gdy możesz połączyć go z zachowaniem reszty maszyny.
- Zmieniaj jedną rzecz. Jakość tekstur przy podejrzeniu streamingu. Limit FPS przy nasyceniu GPU. Jedna nakładka przy regularnym przycięciu. Potem ta sama trasa.
- Zapisuj nudne wyniki. „Bez zmian” usuwa podejrzanego z listy. To nie jest stracony czas.
Naprawy dopasowane do przyczyny
| Dowód | Działanie warte testu | Czego nie robić |
|---|---|---|
| Pierwszy przebieg zły, powtórka czysta | Dokończ przygotowanie shaderów, zachowaj cache, zaktualizuj grę | Nie usuwaj cache shaderów po każdej sesji |
| GPU stale pełne, wykres nierówny | Ogranicz FPS poniżej stałej wydajności albo zmniejsz ustawienia obciążające GPU | Nie instaluj globalnych paczek „na opóźnienia” |
| Jeden wątek CPU pełny, GPU zwalnia | Zmniejsz symulację, tłum albo zasięg widzenia; zamknij potwierdzonego winowajcę | Nie oceniaj tylko łącznego procentu CPU |
| Pomaga wyłącznie zmiana tekstur | Zmniejsz presję puli tekstur, sprawdź dysk i budżet VRAM | Nie obniżaj wszystkiego naraz, bo stracisz dowód |
| Równy puls znika po wyłączeniu jednej nakładki | Zostaw tę integrację wyłączoną albo zmień sposób przechwytywania | Nie wyłączaj losowo zabezpieczeń Windows |
| Problem zaczyna się po rozgrzaniu | Napraw chłodzenie, tryb zasilania lub potwierdzony limit | Nie ukrywaj objawu samym hałasem wentylatorów bez sprawdzenia taktowań |
Gdzie pomaga PC Workman, a gdzie nie
PC Workman dostarcza systemową część historii: użycie CPU i GPU, pamięć, temperatury, taktowania, moc oraz procesy aktywne w okolicy złego fragmentu. Jego nakładka w grze może odczytać FPS przez RTSS, jeśli RTSS jest uruchomiony.
Obecna wersja nie zapisuje śladu każdej klatki z PresentMon i nie liczy 1% low. Do tej części użyj PresentMon albo programu zbudowanego na jego podstawie. Następnie porównaj dokładny moment przycięcia z historią czujników PC Workmana. Ten podział jest uczciwy i praktyczny: jedno narzędzie dowodzi, że klatka się spóźniła, drugie pokazuje, co wtedy robiła maszyna.
Krótkie odpowiedzi
Dlaczego gra przycina, mimo że FPS jest wysoki?
Ponieważ średnia ukrywa pojedyncze spóźnione klatki. Kompilacja shaderów, doczytywanie, zajęty wątek CPU, presja VRAM albo przerwanie sterownika mogą zatrzymać jedną klatkę bez mocnego spadku średniej.
Czy 1% low pokazuje przyczynę?
Nie. Potwierdza, że część klatek była wolniejsza. Dopiero oś czasu i odpowiadające jej dane systemu wskazują najbardziej prawdopodobną przyczynę.
Czy warto ograniczyć FPS?
Sprawdź to, gdy GPU stale pracuje blisko limitu. Zostaw ograniczenie, jeśli ta sama scena daje równiejszy wykres. Limit nie naprawi kompilacji ani zacięcia dysku.
Źródła pierwotne
- GameTechDev PresentMon, zapis wydajności CPU, GPU i wyświetlenia dla każdej klatki.
- Microsoft DirectX: ograniczenie przez CPU i GPU.
- Epic Games: przycięcia shaderów i przygotowanie PSO.
- Dokumentacja streamingu tekstur Unreal Engine.
Jeśli cały komputer zwalnia, choć wszystkie wykresy wyglądają normalnie, przejdź do poradnika o ukrytych wąskich gardłach →