Aller au contenu
PS5PCEM
PartielGraphisme

HTILE, DCC, CMASK et FMASK

HTILE, DCC, CMASK et FMASK sont les métadonnées compressées de profondeur et de couleur de la console. PS5PCEM suit les pointeurs, efface HTILE dans les cas qu'il comprend, et refuse une disposition qu'il traiterait sinon par un detile incorrect.

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

Ce que sont les quatre noms

HTILE est une métadonnée de profondeur. Sur le motif GFX10 que PS5PCEM implémente, un dword couvre une région de 8×8 pixels, et ces dwords sont empaquetés dans un bloc de 32 KiB qui couvre 1024 par 512 pixels. DCC est la compression de couleur par delta pour les cibles couleur. CMASK est un masque d'effacement rapide et d'expansion. FMASK indique à un resolve multiéchantillon quel échantillon appartient à quel pixel.

L'instantané de ressource conserve les pointeurs de métadonnées et les sélecteurs de disposition, y compris le bit de CMASK linéaire GFX10. Ce bit compte, parce qu'appliquer une équation d'adresse tuilée à un CMASK linéaire brouillerait le masque en silence. Le backend rejette à la place la disposition non prise en charge.

Effacements et profondeur

Des effacements HTILE et DCC corrects sont implémentés pour les dispositions que le moteur de rendu comprend. Les effacements répétés de métadonnées sont couverts par la sonde vulkan-smoke htile-clears. Une étendue de profondeur réinitialisée n'est récupérée que pour une surface active adossée à HTILE, ce qui garde intact le G-buffer de Ghost of Yōtei et laisse tout de même une liaison de profondeur d'interface 1×1 périmée échouer au contrôle de taille d'attachement.

La profondeur et le stencil invités à un seul échantillon peuvent être importés et réécrits lorsque PS5_GPU_DEPTH_TRANSFER=1. Les plans de stencil liés deviennent des attachements empaquetés profondeur plus stencil, avec les opérations de comparaison et de mise à jour de l'invité. La profondeur multiéchantillon utilise le chemin MSAA. La plage Z compressée et le Z hiérarchique à l'intérieur de HTILE ne sont pas entièrement interprétés.

Ce qui reste explicite

Le travail restant, énoncé dans les notes GPU, porte sur le reste des vues de couches, les états DCC et FMASK compressés qui restent, la plage Z et le Hi-Z de HTILE, et les états CMASK couplés à FMASK. Un import MSAA non pris en charge conserve un effacement de premier usage. Échantillonner la surface compressée comme s'il s'agissait de texels ordinaires est la défaillance que ce refus existe pour éviter.

Le support des métadonnées est donc partiel à dessein. Les pointeurs sont décodés. Les dispositions qui ont été validées sont honorées. Les dispositions qui n'ont pas été validées sont rejetées ou effacées.

Ce qui est en place

  • Adressage HTILE pattern-21, un dword par 8×8, en blocs de 32 KiB.
  • Effacements HTILE et DCC pour les dispositions que le moteur de rendu comprend.
  • Détection du CMASK linéaire, qui refuse une équation tuilée sur un masque linéaire.
  • Import et réécriture, sur option, de la profondeur et du stencil à un seul échantillon.

Ce qui manque encore

  • L'interprétation complète de la plage Z de HTILE et du Z hiérarchique est incomplète.
  • Les états DCC et FMASK compressés, et le CMASK couplé à FMASK, restent en dehors du chemin rapide.
  • Un import compressé non pris en charge est effacé plutôt qu'échantillonné comme des texels bruts.

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