Proč hry trhají na Windows 11 (a jak najít skutečnou příčinu)

Trhání je snímek, který přišel pozdě, ne nízká snímková frekvence — příčiny, které po sobě nechají stopu, jak poznat, která z nich je ta tvoje, a co s každou z nich.

Počitadlo ukazuje 160. Hra přesto škubne — zlomek sekundy, kdy se obraz zastaví, míření skončí někde, kam jsi ho nedal, a pak je zase všechno v pořádku. Počitadlo se ani nehnulo, a právě proto nepomáhá nic, čím ho zkoušíš zvednout.

Tenhle rozpor je celé téma téhle stránky. Trhání je snímek, který přišel pozdě, ne nízká snímková frekvence. Počitadlo snímků průměruje přes sekundu, takže jeden snímek, který trval 90 ms, zmizí uvnitř těch 159 krátkých vedle něj. Číslo, které popisuje, co jsi cítil, je čas snímku, a trhnutí je snímek mnohem pomalejší než jeho sousedé.

Nejdřív poctivá věta. Dvě z deseti příčin níže odpovídají jednomu políčku ve w0a: hodnota plánovače v příčině 8 a nahrávání hry na pozadí v příčině 9. Obě políčka jen dají nastavení tam, kam patří, a na stroji, který nikdo neladil, to první nenajde nic ke změně. Jestli trhání, které cítíš, byla jedna z nich, ti může říct jen záznam před a po.

Nejdřív zjisti, který ze tří problémů máš

Říká se jim stejným slovem a nemají spolu skoro nic společného.

Pořiď si záznam dřív, než cokoli změníš

Kvůli hádání tohle trvá týdny. Záznam hry, kterou opravdu hraješ, tam, kde opravdu trhá, promění „co by to mohlo být“ na „co se stalo u té špičky“ — a je to to „před“, proti kterému se poměřuje každá pozdější změna. Jak na to, popisuje Jak číst výsledek benchmarku.

Příčiny, jedna po druhé

1. Ovladač, který drží jádro procesoru

Dokud je ovladač uvnitř přerušení nebo odloženého volání procedury, běží to jádro nad každou existující prioritou vlákna: nic nevykreslí a nepřečte žádný vstup, dokud ovladač nepustí. Tuhle příčinu snadno přehlédneš: neobjeví se v žádném grafu časů snímků ani v žádném správci úloh.

Jak to poznáš: změř to. Sekce o jádře v čtení testu latence vypíše každý ovladač, který jádro držel, seřazený podle nejdelšího držení a s názvem souboru. Zhruba od 1 ms ovladač vytlačuje reporty vstupu; od 4 ms výš si počítač neudrží stabilní čas snímku, ať změníš cokoli jiného.

Co s tím: aktualizuj ten jeden ovladač od výrobce hardwaru — ne celý systém, ten pojmenovaný soubor. Ovladače sítě, úložiště a zvuku patří mezi ovladače, které to můžou dělat.

2. Kompilace shaderů

Nový efekt, nová oblast, nová zbraň — a hra musí zkompilovat shader, než ho může vykreslit. Kompilace běží na procesoru, zatímco snímek čeká.

Jak to poznáš: je to nejhorší v prvních minutách sezení nebo mapy, během hraní to odeznívá a po aktualizaci ovladače nebo hry se to vrátí. Jestli tvoje trhání neodeznívá, není to tohle — trhání při kompilaci shaderů je dlouhá verze.

Co s tím: prohraj se tím, a v tom okně nebenchmarkuj; měřil bys překladač.

3. Disk, ze kterého hra streamuje

Hra, která si při tvém pohybu dotahuje assety, trhá, když je čtení pomalé, a pozdní snímek je ten, který na ta data čeká.

Jak to poznáš: záseky se kryjí se vstupem do nové oblasti a dlouhé intervaly mezi snímky padnou do stejného okna jako aktivita disku. Zkontroluj to zjevné: leží hra na mechanickém disku, není disk skoro plný, není složka hry uvnitř složky synchronizované do cloudu, která odesílá každý zápis, neleží stránkovací soubor na točivém disku. SSD pro streamující hru není tweak, je to odpověď.

4. Tlak na paměť

Když se RAM zaplní, Windows odsouvají stránky na disk a jejich návrat je cítit jako záseky. Méně zjevný případ je limit potvrzené paměti: jak dochází celková paměť, kterou Windows můžou rozdat, správce paměti odebírá stránky programům, které pořád běží, a hra ty odběry cítí jako podsekundová zamrznutí. Obojí se zlepší ve chvíli, kdy zavřeš prohlížeč se čtyřiceti panely.

5. Něco jiného běží

Pracovní proces Windows Update, údržbová úloha, naplánovaná kontrola na malware, export videa, na který jsi zapomněl. Ta práce se spuštěním hry nezastaví; staví se do fronty na stejné jádro jako vykreslovací vlákno, takže se projeví jako špičky v časech snímků, ne jako nižší průměr. Přečkat to je legitimní oprava.

Jak to poznáš: záznam benchmarku si drží nejdelší intervaly mezi snímky spolu s prací disku a hard faulty, které padly do stejného okna. Pokud šlo o procesy údržby nebo antiviru Windows, karta dlouhých intervalů ty intervaly spočítá a procesy pojmenuje. Je to to, co se sešlo, ne důkaz, že snímek zdržela právě tahle práce: antivirus čte vše, co otevře jakýkoli program.

6. Teplo a limity příkonu

Když čip narazí na svůj teplotní strop nebo strop příkonu, takt se opakovaně stahuje dolů a zase tlačí nahoru, a zevnitř se to projeví jako zvlněné časy snímků. Rozhoduje o tom firmware sám, aniž by se ptal Windows. Nezačne to hned, ale po chvíli, a kopíruje to, jak je teplo v místnosti.

7. Obrazovka

Monitor běžící pod obnovovací frekvencí, kterou podporuje, podkládá rovnoměrnost tvých snímků dnem, které hardware nevyžaduje. Skutečnou frekvenci si zkontroluj, místo abys ji předpokládal; po čisté instalaci nebo po výměně kabelu bývá špatně na překvapivě velkém počtu počítačů.

8. Hodnota plánovače, kterou po sobě nechal starší nástroj

Win32PrioritySeparation rozhoduje o tom, jak dlouho si vlákno udrží procesor a o kolik víc času dostane aplikace v popředí. Hodnoty s dlouhými nebo pevnými kvanty, nebo s podílem popředí pod 3:1, mění to, jak se procesor dělí mezi hru a všechno ostatní; co to dělá s časy snímků, se neměřilo. Výchozí hodnotu Windows vrátí karta Paměť a výchozí nastavení systému na stránce Fix.

9. Overlaye a vrstva pro záznam

Overlaye kreslí uvnitř vlastního snímku hry a nahrávání na pozadí kóduje každý snímek, aby se daly uložit poslední minuty. Zavírej je po jednom a testuj, ne všechny naráz.

10. Zápas, ne počítač

Online hra se může zaseknout všem na serveru naráz. Jestli je obsah pro jednoho hráče na tomtéž počítači čistý a záznam časů snímků ukazuje, že hra zobrazuje normálně, je to opravdu užitečná odpověď: není to tvůj počítač.

Dvě příčiny, pro které má w0a políčko

Příčina 8: „Držet prioritu popředí na správné hodnotě (Win32PrioritySeparation)“ (stránka Optimalizace)

Jedna hodnota DWORD: Win32PrioritySeparation pod HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl.

Referencí Microsoftu k ní je archivovaná stránka napsaná pro Windows 2000; popisuje šest bitů čtených ve třech párech, zapsaných jako AABBCC:

PárRozhoduje o tomHodnoty
AA (dva nejvyšší bity)Jak dlouho smí vlákno pokaždé běžet01 déle, 10 kratší dobu, 00 nebo 11 vlastní výchozí hodnota edice (kratší na edici pro pracovní stanice)
BB (prostřední dva)Jestli se ta délka mění01 proměnná, 10 pevná, 00 nebo 11 výchozí hodnota edice (proměnná na edici pro pracovní stanice)
CC (dva nejnižší)O kolik víc času dostane program v popředí00 stejně (a pevně), 01 2:1, 10 nebo 11 3:1. Používá se, jen když prostřední pár znamená proměnnou délku.

Příčina 9: „Vypnout Xbox Game DVR“ (stránka Optimalizace)

HodnotaPolíčko zapisujeVýchozí hodnota Windows (co obnoví opravná karta)
HKCU\System\GameConfigStore, GameDVR_Enabled01
HKLM\SOFTWARE\Policies\Microsoft\Windows\GameDVR, AllowGameDVR0neexistuje
HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR, AppCaptureEnabled01
HKCU\Software\Microsoft\GameBar, ShowStartupPanel0neexistuje
HKCU\Software\Microsoft\GameBar, UseNexusForGameBarEnabled0, kromě Ryzenu X3D se dvěma CCDneexistuje

Všechny jsou DWORD. Na procesoru X3D se dvěma CCD nechá políčko poslední hodnotu na pokoji: řetězec nahrávání se i tak vypne, ale ta část Game Baru, kterou poslouchá ovladač AMD, zůstane běžet. Je to preventivní opatření, ne prokázaná příčina, a zpráva políčka řekne, kterou cestou šlo. Ryzen X3D, Game Bar a parkování jader vysvětluje, proč na těch čipech na té části záleží.

Ověř si to sám

Tyhle příkazy jen čtou:

reg query "HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl" /v Win32PrioritySeparation
reg query "HKCU\System\GameConfigStore" /v GameDVR_Enabled
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR"
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\GameDVR" /v AllowGameDVR
reg query "HKCU\Software\Microsoft\GameBar"

Jak číst odpovědi:

Co s tím vším dělá sken

Co hledá sken trhání pouští tyhle kontroly proti tomu, co si Windows a tvoje ovladače už zaznamenaly, a každý nález označí jako prokázaný, pravděpodobný, kandidáta nebo neověřený. Dvě věci stojí za to vědět: sken, který vždycky najde deset problémů, ti prodává opravy, a kontrola, která nemohla proběhnout, se počítá, místo aby se potichu brala jako čistá.

Potom změň jednu věc a zaznamenej tutéž scénu znovu. Pět změn a jedno měření ti neřeknou nic o tom, která z nich zabrala, a všechno, co žádným číslem nepohnulo, se má vrátit zpátky.

Věci, které příčinou nejsou

Tohle všechno koluje donekonečna jako oprava trhání a w0a odmítá zapsat každou z těch hodnot, z důvodů, které jsou zaznamenané:

Na počítači, kterému paměť nechybí, nezmění čistič paměti nic měřitelného.

Související

Hraješ CS2? Které možnosti spuštění ještě něco dělají a kde v menu obrazu opravdu leží snímky: Nízké FPS, trhání a sekání v CS2: změřený kontrolní seznam

w0a nezmění žádné nastavení Windows, dokud o to nepožádáš, a tweak si před zápisem nové hodnoty uloží tu starou. Upozornit mě

Pomohla ti tahle stránka?

Co chybělo, nebo co nefungovalo? Čteme každou jednu takovou zprávu.

Jestli tahle stránka problém nevyřešila, napiš nám — uveď, který článek jsi četl, a my ten článek opravíme.