Czym jest DPC
Gdy urządzenie potrzebuje uwagi, na przykład przychodzi pakiet z sieci albo opróżnia się bufor dźwięku, jego sterownik wykonuje procedurę obsługi przerwania (ISR). Microsoft wymaga, żeby była bardzo krótka, więc dłuższa praca trafia do kolejki jako odroczone wywołanie procedury (DPC) i wykonuje się zaraz potem, przed zwykłymi programami.
W trakcie DPC na tym rdzeniu procesora nie działa nic innego, gra też nie. Według wytycznych Microsoftu dla sterowników typowe DPC nie powinno trwać dłużej niż 100 mikrosekund, a ISR dłużej niż 25. Sterownik, który zajmuje milisekundę lub więcej, trzyma grę na tyle długo, że klatka wychodzi spóźniona, a w tej samej chwili może zatrzeszczeć dźwięk.
Objawy
- Przycięcia, których nie zmienia żadne ustawienie grafiki i które pojawiają się przy każdej liczbie klatek.
- Trzaski albo pyknięcia w dźwięku, czasem w tej samej chwili co przycięcie.
- Mysz, która co jakiś czas przeskakuje.
- Gorzej, gdy pracuje konkretne urządzenie: pobieranie przez Wi-Fi, słuchawki na USB, dysk zewnętrzny.
Krok 1: znajdź sterownik
Wskazać go potrafią trzy narzędzia. Mierzą to samo, więc użyj tego, które odpowiada na Twoje pytanie.
- OakmontGamer śledzi wywołania sterowników w trakcie gry i zestawia je z przycięciami. Zakładka Diagnoza w sesji wskazuje sterownik, który za nimi stał, a Szczegóły techniczne, Sterowniki (DPC / ISR) pokazują każdy sterownik z jego najdłuższym wywołaniem. Do śledzenia jądra aplikacja musi działać jako administrator.
- LatencyMon od Resplendence mierzy czasy ISR i DPC oraz twarde błędy strony na bezczynnym albo obciążonym komputerze i wskazuje najgorszy sterownik. Nie wie jednak, kiedy gra przycięła.
- Windows Performance Recorder i Analyzer od Microsoftu to oficjalne narzędzia. Wykres DPC/ISR pokazuje każde wywołanie według modułu, ale trzeba się go trochę nauczyć.
Krok 2: przeczytaj nazwę sterownika
| Sterownik | Co to jest | Co sprawdzić najpierw |
|---|---|---|
ndis.sys, tcpip.sys, sterownik Twojej karty sieciowej | Sieć | Zaktualizuj sterownik karty, potem zobacz Krok 3. |
nvlddmkm.sys | Grafika NVIDIA | Zaktualizuj sterownik; jeśli problem zaczął się po aktualizacji, cofnij się o jedną wersję. |
amdkmdag.sys, atikmdag.sys | Grafika AMD | Zaktualizuj sterownik albo cofnij się o jedną wersję. |
storport.sys, stornvme.sys | Dyski | Zaktualizuj sterowniki chipsetu i dysków; sprawdź, co czyta dysk w trakcie gry. |
usbxhci.sys, usbhub3.sys | USB | Odłącz urządzenia, których nie potrzebujesz; obniż bardzo wysoką częstotliwość odpytywania myszy. |
portcls.sys, HDAudBus.sys | Dźwięk | Ustaw urządzenie na 48 kHz i wyłącz ulepszenia dźwięku. |
ACPI.sys | Zasilanie i firmware | Zaktualizuj BIOS; wypróbuj plan zasilania Wysoka wydajność. |
wdf01000.sys to framework, na którym zbudowano wiele sterowników, więc sam w sobie mówi niewiele. Sprawdź, które urządzenie było zajęte w tym samym czasie.
Krok 3: karty sieciowe
Sterowniki sieciowe to najczęstsze źródło DPC w grach, bo mecz zajmuje kartę sieciową przez cały czas. Znaczenie mają dwa ustawienia karty, oba w Menedżerze urządzeń, we Właściwościach karty, na zakładce Zaawansowane.
- Interrupt Moderation (moderacja przerwań). Łączy przerwania w paczki, żeby oszczędzić czas procesora. Przewodnik Microsoftu po strojeniu mówi, żeby ją wyłączyć dla najniższych opóźnień, kosztem większego zużycia CPU. Przetestuj oba warianty.
- Opcje oszczędzania energii karty. Ich nazwy zależą od producenta; wyłączenie ich sprawia, że karta nie budzi się powoli.
Jedna popularna rada jest błędna dla kart Wi-Fi Intela: Intel pisze, że pole "Zezwalaj komputerowi na wyłączanie tego urządzenia w celu oszczędzania energii" działa tylko przy uśpieniu i hibernacji, nie ma wpływu na zarządzanie energią Wi-Fi i powinno zostać zaznaczone.
Krok 4: sprawdź, czy to pomogło
Po każdej zmianie zagraj tę samą scenę i porównaj sesje: najdłuższe wywołanie sterownika, liczbę przycięć i 1% low. Poradnik jak mierzyć 1% low pokazuje, jak odróżnić prawdziwą zmianę od szumu. Zmieniaj jedną rzecz naraz, bo inaczej nie będzie wiadomo, która z nich pomogła.
Co OakmontGamer robi z opóźnieniami DPC
Każda sesja obok nagrywania klatek prowadzi śledzenie jądra, które zapisuje wywołania sterowników. Po meczu zakładka Diagnoza ocenia, co znalazła.
- Najdłuższe DPC powyżej 500 mikrosekund jest oznaczane, a powyżej 1000 uznawane za złe. Dla ISR progi to 250 i 500.
- Gdy długa jest większość wywołań sterowników, a nie jeden skok, aplikacja to mówi i wskazuje sterownik, którego typowe wywołanie jest najdłuższe.
- Sterownik dostaje winę za przycięcia tylko wtedy, gdy któreś z jego wywołań trwało milisekundę lub dłużej tuż przed nimi.
- Poprawka jest w tym samym wierszu: dla sterownika sieciowego przycisk, który wyłącza moderację przerwań, oraz oszczędzanie energii karty.

Aplikacja nie zaktualizuje sterownika za Ciebie. Mówi, który to, i trzyma sesje, więc widać, czy aktualizacja pomogła.
Jak działa diagnoza przycięć
