Warum Spiele unter Windows 11 ruckeln (und wie du die echte Ursache findest)

Ein Ruckler ist ein Frame, das zu spät kam, und keine niedrige Bildrate — die Ursachen, die eine Spur hinterlassen, wie du erkennst, welche davon deine ist, und was gegen jede einzelne hilft.

Dein Zähler sagt 160. Das Spiel zuckt trotzdem — ein Sekundenbruchteil, in dem das Bild stehen bleibt, dein Zielen irgendwo landet, wo du es nicht hingelegt hast, und dann ist wieder alles in Ordnung. Der Zähler hat sich nie bewegt, und deshalb hilft nichts, was du tust, um ihn zu erhöhen.

Diese Lücke ist das ganze Thema dieser Seite. Ein Ruckler ist ein Frame, das zu spät kam, und keine niedrige Bildrate. Ein Bildzähler mittelt über eine Sekunde, also verschwindet ein Frame, das 90 ms gebraucht hat, zwischen den 159 kurzen daneben. Die Zahl, die beschreibt, was du gespürt hast, ist die Frametime, und ein Ruckler ist ein Frame, das deutlich langsamer ist als seine Nachbarn.

Zuerst der ehrliche Satz. Zwei der zehn Ursachen unten entsprechen einem einzelnen Kästchen in w0a: der Scheduler-Wert in Ursache 8 und die Hintergrundaufnahme des Spiels in Ursache 9. Beide Kästchen setzen nur eine Einstellung dorthin, wo sie hingehört, und auf einer Maschine, an der niemand gedreht hat, findet das erste nichts zu ändern. Ob der Ruckler, den du spürst, einer davon war, kann dir nur eine Aufnahme vorher und nachher sagen.

Finde zuerst heraus, welches der drei Probleme du hast

Sie werden mit demselben Wort benannt und haben fast nichts gemeinsam.

Halt etwas fest, bevor du etwas änderst

Raten ist der Grund, warum das Wochen dauert. Eine Aufnahme aus dem Spiel, das du tatsächlich spielst, an der Stelle, an der es tatsächlich ruckelt, macht aus „was könnte es sein“ ein „was ist bei diesem Ausschlag passiert“ — und sie ist das „Vorher“, an dem jede spätere Änderung gemessen wird. Das Benchmark-Ergebnis lesen erklärt, wie.

Die Ursachen, eine nach der anderen

1. Ein Treiber, der einen Prozessorkern hält

Solange ein Treiber in einem Interrupt oder einem verzögerten Prozeduraufruf steckt, läuft dieser Kern über jeder Thread-Priorität, die es gibt: Er zeichnet nichts und liest keine Eingabe, bis der Treiber loslässt. Diese Ursache ist leicht zu übersehen: Sie taucht in keinem Frametime-Diagramm und in keinem Task-Manager auf.

Woran du es erkennst: Miss es. Der Kernel-Abschnitt von den Latenztest lesen listet jeden Treiber auf, der einen Kern gehalten hat, sortiert nach der längsten Haltezeit und mit dem Dateinamen. Ab etwa 1 ms verdrängt ein Treiber Eingabe-Reports; ab 4 ms kann die Maschine keine stabile Frametime mehr halten, egal was du sonst änderst.

Was du tust: Aktualisier genau diesen einen Treiber beim Hardware-Hersteller — nicht das ganze System, die benannte Datei. Netzwerk-, Speicher- und Audiotreiber gehören zu den Treibern, die das tun können.

2. Shader, die kompiliert werden

Neuer Effekt, neues Gebiet, neue Waffe — und das Spiel muss einen Shader kompilieren, bevor es ihn zeichnen kann. Das Kompilieren läuft auf der CPU, während das Frame wartet.

Woran du es erkennst: Es ist in den ersten Minuten einer Sitzung oder einer Map am schlimmsten, es klingt beim Spielen ab, und es kommt nach einem Treiber- oder Spiel-Update zurück. Klingt dein Ruckler nicht ab, ist es nicht das hier — Ruckler durch Shader-Kompilierung ist die lange Fassung.

Was du tust: Spiel es durch, und benchmark nicht in diesem Zeitfenster; du würdest den Compiler messen.

3. Die Platte, von der das Spiel nachlädt

Ein Spiel, das Assets nachlädt, während du dich bewegst, ruckelt, wenn der Lesevorgang langsam ist, und das Frame, das auf diese Daten wartet, ist das verspätete.

Woran du es erkennst: Die Hänger fallen mit dem Betreten eines neuen Gebiets zusammen, und lange Frame-Intervalle liegen im selben Zeitfenster wie Plattenaktivität. Prüf das Naheliegende: Liegt das Spiel auf einer mechanischen Platte, ist das Laufwerk fast voll, liegt der Spieleordner in einem cloudsynchronisierten Ordner, der jeden Schreibvorgang hochlädt, liegt die Auslagerungsdatei auf einer drehenden Platte. Eine SSD für ein Spiel, das nachlädt, ist kein Tweak, sondern die Antwort.

4. Speicherdruck

Füllt sich der Arbeitsspeicher, lagert Windows Speicherseiten auf die Platte aus, und die Seiten, die zurückkommen, spürst du als Hänger. Der weniger offensichtliche Fall ist das Commit-Limit: Geht der gesamte Speicher zur Neige, den Windows vergeben kann, nimmt die Speicherverwaltung laufenden Programmen Seiten weg, und das Spiel spürt diese Kürzungen als Einfrieren unter einer Sekunde. Beides bessert sich in dem Moment, in dem du einen Browser mit vierzig Tabs schließt.

5. Etwas anderes läuft

Der Arbeitsprozess von Windows Update, eine Wartungsaufgabe, ein geplanter Virenscan, ein Videoexport, den du vergessen hast. Diese Arbeit hört nicht auf, wenn ein Spiel startet; sie stellt sich für denselben Kern an wie der Render-Thread und zeigt sich deshalb als Ausschläge in der Frametime und nicht als niedrigerer Durchschnitt. Es auszusitzen ist eine legitime Lösung.

Woran du es erkennst: Eine Benchmark-Aufzeichnung behält ihre längsten Frame-Intervalle zusammen mit den Datenträgerzugriffen und Hard Faults, die ins selbe Zeitfenster fielen. Waren das Wartungs- oder Virenschutzprozesse von Windows, zählt die Karte der langen Intervalle diese Intervalle und nennt die Prozesse. Das ist, was zusammenfiel, kein Beweis, dass diese Arbeit den Frame verspätet hat: Der Virenschutz liest alles, was irgendein Programm öffnet.

6. Hitze und Leistungsgrenzen

Erreicht ein Chip seine Temperatur- oder Leistungsobergrenze, wird der Takt immer wieder heruntergezogen und wieder hochgeschoben, und wellige Frametimes sind, wie sich das von innen anfühlt. Diese Entscheidung trifft die Firmware selbst, ohne Windows zu fragen. Es beginnt nach einer Weile und nicht sofort, und es hängt daran, wie warm der Raum ist.

7. Der Bildschirm

Ein Monitor, der unter der Bildwiederholrate läuft, die er unterstützt, legt einen Boden unter deine Frameausgabe, den die Hardware gar nicht verlangt. Prüf die tatsächliche Rate, statt sie anzunehmen; nach einer frischen Installation oder einem Kabeltausch steht sie auf überraschend vielen Maschinen falsch.

8. Ein Scheduler-Wert, den ein älteres Werkzeug hinterlassen hat

Win32PrioritySeparation entscheidet, wie lange ein Thread den Prozessor behält und wie viel mehr Zeit die Anwendung im Vordergrund bekommt. Werte mit langen oder festen Quanten oder mit einem Vordergrundanteil unter 3:1 ändern, wie der Prozessor zwischen dem Spiel und allem anderen aufgeteilt wird; was das mit der Frametime macht, wurde nicht gemessen. Die Karte Speicher- und Systemstandards auf der Seite Fix schreibt den Windows-Standard zurück.

9. Overlays und die Aufnahmeschicht

Overlays zeichnen innerhalb des Frames des Spiels, und eine Hintergrundaufnahme kodiert jedes Frame, damit sich die letzten Minuten speichern lassen. Schließ sie einzeln und teste, statt alle auf einmal.

10. Die Partie, nicht die Maschine

Ein Online-Spiel kann für alle auf dem Server gleichzeitig hängen. Läuft Einzelspieler-Inhalt auf derselben Maschine sauber und zeigt die Frametime-Aufzeichnung, dass das Spiel normal ausgibt, ist das eine wirklich nützliche Antwort: Es liegt nicht an deinem PC.

Die zwei Ursachen, für die w0a ein Kästchen hat

Ursache 8: „Vordergrundpriorität auf dem richtigen Wert halten (Win32PrioritySeparation)“ (Seite Optimierungen)

Ein DWORD-Wert: Win32PrioritySeparation unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl.

Microsofts Referenz dafür ist eine archivierte Seite, geschrieben für Windows 2000; sie beschreibt sechs Bits, die in drei Paaren gelesen werden, geschrieben als AABBCC:

PaarEntscheidetWerte
AA (die zwei höchsten Bits)Wie lange ein Thread jedes Mal laufen darf01 länger, 10 kürzer, 00 oder 11 der eigene Standard der Edition (kürzer auf einer Workstation-Edition)
BB (die zwei mittleren)Ob diese Länge variiert01 variabel, 10 fest, 00 oder 11 der Standard der Edition (variabel auf einer Workstation-Edition)
CC (die zwei niedrigsten)Wie viel mehr Zeit das Programm im Vordergrund bekommt00 gleich (und fest), 01 2:1, 10 oder 11 3:1. Wird nur verwendet, wenn das mittlere Paar variabel bedeutet.

Ursache 9: „Xbox Game DVR deaktivieren“ (Seite Optimierungen)

WertDas Kästchen schreibtWindows-Standard (das stellt die Reparaturkarte wieder her)
HKCU\System\GameConfigStore, GameDVR_Enabled01
HKLM\SOFTWARE\Policies\Microsoft\Windows\GameDVR, AllowGameDVR0nicht vorhanden
HKCU\Software\Microsoft\Windows\CurrentVersion\GameDVR, AppCaptureEnabled01
HKCU\Software\Microsoft\GameBar, ShowStartupPanel0nicht vorhanden
HKCU\Software\Microsoft\GameBar, UseNexusForGameBarEnabled0, außer auf einem Ryzen X3D mit zwei CCDsnicht vorhanden

Alle sind DWORD. Auf einem X3D-Prozessor mit zwei CCDs lässt das Kästchen den letzten Wert in Ruhe: Die Aufnahmekette wird trotzdem abgeschaltet, aber der Teil der Game Bar, auf den der Treiber von AMD hört, läuft weiter. Das ist eine Vorsichtsmaßnahme, keine bewiesene Ursache, und die Meldung des Kästchens sagt, welchen Weg es genommen hat. Ryzen X3D, Game Bar und Core Parking erklärt, warum dieser Teil auf diesen Chips zählt.

Prüf es selbst

Diese Befehle lesen nur:

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"

So liest du die Antworten:

Was der Scan mit alldem macht

Wonach der Ruckler-Scan sucht führt diese Prüfungen gegen das aus, was Windows und deine Treiber ohnehin aufgezeichnet haben, und kennzeichnet jeden Befund als bewiesen, wahrscheinlich, Kandidat oder nicht geprüft. Zwei Dinge, die man wissen sollte: Ein Scan, der immer zehn Probleme findet, verkauft dir die Lösungen dazu, und eine Prüfung, die nicht laufen konnte, wird gezählt und nicht stillschweigend als sauber behandelt.

Änder danach eine Sache und nimm dieselbe Szene noch einmal auf. Fünf Änderungen und eine Messung sagen dir nichts darüber, welche davon gewirkt hat, und alles, was keine Zahl bewegt hat, gehört zurückgenommen.

Was nicht die Ursache ist

All das kursiert endlos als Lösung gegen Ruckler, und w0a weigert sich, jeden einzelnen dieser Werte zu schreiben, aus dokumentierten Gründen:

Auf einer Maschine, der kein Arbeitsspeicher fehlt, ändert ein Speicherreiniger nichts Messbares.

Verwandt

Du spielst CS2? Welche Startoptionen noch etwas bewirken und wo im Grafikmenü die Frames tatsächlich liegen: Wenig FPS und Ruckler in CS2 trotz gutem PC: eine gemessene Checkliste

w0a ändert keine Windows-Einstellung, bevor du es verlangst, und ein Tweak sichert den alten Wert, bevor er einen neuen schreibt. Erinnere mich

Hat diese Seite geholfen?

Was hat gefehlt, oder was hat nicht funktioniert? Wir lesen jede einzelne Rückmeldung.

Wenn diese Seite das Problem nicht gelöst hat, schreib uns — nenne den Artikel, den du gelesen hast, und wir bessern ihn nach.