Aller au contenu
PS5PCEM
PartielGraphisme

Suivi de pages GPU

Le suivi de pages sur option surveille les pages invitées de 16 KiB. Le premier store CPU natif provoque une faute, avance une génération et invalide la copie GPU, pour que les pages inchangées ne soient pas hachées ni envoyées à chaque image.

Notes du dépôt jusqu’au 10 octobre 2026

Le problème qu'il traite

Une cible de rendu ou un tampon de sommets qui vit en mémoire invitée doit atteindre le GPU. Envoyer toute l'allocation à chaque image est correct et coûteux. Hacher toute l'allocation pour découvrir qu'elle n'a pas changé est coûteux aussi. Le suivi de pages marque plutôt en lecture seule une page inscriptible suivie, et laisse le CPU fauter au premier store.

Le gestionnaire de faute enregistre la page, rétablit la vraie protection de l'invité et avance la génération de cette page. Un draw ultérieur compare les générations. Une page inchangée reste sur le périphérique. Une page dont la génération a bougé est envoyée. PS5_GPU_PAGE_TRACKER=1 active le mécanisme. Il est éteint, sauf si cette variable, ou l'ensemble expérimental, est définie.

Ce qu'est la faute

La faute est une invalidation, pas un bug de l'invité. La page n'était en lecture seule que pour permettre à l'hôte d'observer l'écriture. Le store invité est ensuite autorisé à se terminer sous la protection demandée par le titre. Les pages qui ne sont pas suivies conservent le chemin d'envoi ordinaire.

Les mappages de mémoire directe recréés avec la même adresse, la même taille, le même décalage physique et les mêmes permissions CPU conservent leurs vues hôtes. Cette réutilisation est ce qui rend une génération significative d'une image à l'autre. Un changement de support ou de permissions prend le chemin de remplacement ordinaire, et le suivi observe le nouveau mappage.

Ce qu'il ne fait pas

Le suivi ne réduit pas la résolution interne d'un titre, et il ne compile pas de shaders. Il ne retire que les transferts répétés des pages vers lesquelles le CPU n'a pas fait de store. Un titre qui réécrit un tampon à chaque image paie encore ce tampon.

Les écritures d'atlas de police et les autres stores HLE invalident les surveillances avant de modifier la mémoire invitée, de sorte qu'une écriture de micrologiciel n'est pas invisible pour le GPU. Le suivi fait partie de l'ensemble GPU expérimental décrit dans la vue d'ensemble de l'architecture.

Ce qui est en place

  • Générations par page pour les pages invitées de 16 KiB lorsque PS5_GPU_PAGE_TRACKER=1.
  • Une faute au premier store, qui rétablit la protection invitée et invalide la copie résidente.
  • Réutilisation des vues de mémoire directe identiques, pour que les générations survivent d'une image à l'autre.
  • Invalidation lorsque HLE lui-même écrit une page surveillée.

Ce qui manque encore

  • Le suivi est sur option. Le chemin de compatibilité par défaut n'en dépend pas.
  • Les pages que le CPU réécrit à chaque image sont encore envoyées.
  • Il ne couvre pas la cohérence de GPU à GPU à l'intérieur d'une surface de métadonnées compressées.

Mécanismes liés

Ce que ces pages décrivent

Le texte suit les notes d’architecture et les rapports d’octobre 2026 du dépôt PS5PCEM. Un test ciblé qui passe n’est ni une nouvelle cadence d’images ni une nouvelle partie terminée.

Toutes les technologies