Zum Inhalt springen
PS5PCEM
TeilweiseGrafik

GPU-Seitenverfolger

Der zuschaltbare Seitenverfolger beobachtet Gastseiten von 16 KiB. Der erste native CPU-Store löst einen Fehler aus, erhöht eine Generation und macht die GPU-Kopie ungültig, sodass unveränderte Seiten nicht in jedem Bild gehasht und hochgeladen werden.

Repository-Notizen bis 10. Oktober 2026

Das Problem, das er angeht

Ein Renderziel oder ein Vertexpuffer, der im Gastspeicher liegt, muss die GPU erreichen. Die ganze Zuteilung in jedem Bild hochzuladen ist richtig und teuer. Die ganze Zuteilung zu hashen, um festzustellen, dass sie sich nicht geändert hat, ist ebenfalls teuer. Der Seitenverfolger markiert stattdessen eine verfolgte beschreibbare Seite als schreibgeschützt und lässt die CPU beim ersten Store einen Fehler auslösen.

Die Behandlung zeichnet die Seite auf, stellt den echten Schutz des Gastes wieder her und erhöht die Generation dieser Seite. Ein späterer Zeichenaufruf vergleicht Generationen. Eine unveränderte Seite bleibt auf dem Gerät. Eine Seite, deren Generation sich bewegt hat, wird hochgeladen. PS5_GPU_PAGE_TRACKER=1 schaltet den Mechanismus ein. Er ist aus, solange diese Variable oder das experimentelle Bündel nicht gesetzt ist.

Was der Seitenfehler ist

Der Fehler ist eine Invalidierung, kein Fehler des Gastes. Die Seite war nur schreibgeschützt, damit der Host den Schreibvorgang beobachten konnte. Der Store des Gastes darf danach unter dem Schutz zu Ende laufen, den der Titel verlangt hat. Seiten, die nicht verfolgt werden, behalten den gewöhnlichen Upload-Pfad.

Abbildungen des direkten Speichers, die mit derselben Adresse, Größe, demselben physischen Offset und denselben CPU-Rechten neu entstehen, behalten ihre Host-Sichten. Diese Wiederverwendung macht eine Generation über Bilder hinweg bedeutsam. Ein Wechsel des Backings oder der Rechte nimmt den normalen Ersetzungspfad, und der Verfolger beobachtet die neue Abbildung.

Was er nicht tut

Der Verfolger macht die interne Auflösung eines Titels nicht kleiner, und er kompiliert keine Shader. Er entfernt nur wiederholte Transfers von Seiten, auf die die CPU nicht geschrieben hat. Ein Titel, der einen Puffer in jedem Bild umschreibt, zahlt für diesen Puffer weiterhin.

Schreibvorgänge in Schriftatlanten und andere HLE-Stores machen die Überwachungen ungültig, bevor sie Gastspeicher ändern, sodass ein Firmware-Schreibvorgang für die GPU nicht unsichtbar ist. Der Verfolger gehört zu der experimentellen GPU-Menge, die im Architekturüberblick beschrieben ist.

Was umgesetzt ist

  • Generationen je Seite für Gastseiten von 16 KiB, wenn PS5_GPU_PAGE_TRACKER=1.
  • Ein Fehler beim ersten Store, der den Gastschutz wiederherstellt und die residente Kopie ungültig macht.
  • Wiederverwendung identischer Sichten auf direkten Speicher, sodass Generationen über Bilder hinweg bleiben.
  • Invalidierung, wenn HLE selbst eine beobachtete Seite schreibt.

Was noch fehlt

  • Der Verfolger ist zuschaltbar. Der Standard-Kompatibilitätspfad hängt nicht von ihm ab.
  • Seiten, die die CPU in jedem Bild umschreibt, werden weiterhin hochgeladen.
  • Er deckt keine Kohärenz von GPU zu GPU innerhalb einer komprimierten Metadatenoberfläche ab.

Verwandte Mechanismen

Worum es auf diesen Seiten geht

Der Text folgt den Architektur-Notizen und den Berichten vom Oktober 2026 im PS5PCEM-Repository. Ein bestandener Einzeltest ist keine neue Bildrate und kein neuer Durchspielstand.

Alle Techniken