Skip to main content
Le GPU XBOX Series X|S comprend deux fonctionnalités matérielles conçues sur mesure qui implémentent Sampler Feedback. La première est Sampler Feedback lui-même : un nouveau mode de fonctionnement de l’échantillonnage de textures qui interroge les modèles d’échantillonnage de textures, puis les écrit dans une ressource spéciale appelée « carte de feedback » (feedback map). La ressource de carte de feedback peut utiliser deux représentations différentes, chacune dotée d’attributs propres adaptés à divers scénarios d’utilisation. La seconde fonctionnalité est un nouveau mode de filtrage de textures spécialement conçu pour filtrer les « cartes MinMip », utilisées pour implémenter un plafonnement du niveau de détail (LOD) minimal par région d’une texture. Ce nouveau mode de filtrage est conçu pour corriger les défauts visuels du mode de filtrage « MIN reduction » existant.

Interrogation et écriture de Sampler Feedback

Voici une vue d’ensemble de l’opération d’interrogation et d’écriture de Sampler Feedback.
  1. Une opération d’échantillonnage de textures est définie par une vue de ressource de shader et un état d’échantillonneur pour une texture de scène, des coordonnées UV(W) en entrée et les gradients UV(W) calculés par interpolation. Dans le cas d’un échantillonnage de textures dans une étape de shader autre que le pixel shader, un index de niveau de mip est fourni à la place des gradients.
  2. Le matériel d’adressage de textures calcule un modèle d’échantillonnage de textures, composé d’un ou plusieurs échantillons comprenant chacun des coordonnées de texture absolues et un index de niveau de mip.
  3. Les coordonnées absolues de chaque échantillon de texture sont converties en coordonnées absolues par rapport à la carte de feedback.
  4. L’ensemble d’échantillons de texture est fusionné de l’une des deux manières possibles.
  5. L’ensemble d’échantillons de texture fusionné est écrit dans la carte de feedback à l’aide d’une sémantique atomique.
Le matériel prend en charge deux représentations différentes de la carte de feedback. Chaque représentation définit le fonctionnement spécifique des étapes de conversion des coordonnées, de fusion et d’écriture mentionnées précédemment (étapes 3 à 5). La carte de feedback peut être considérée comme « associée » à la texture pour laquelle le modèle d’échantillonnage est calculé. La carte de feedback est généralement beaucoup plus petite que la texture associée, et sa taille doit être une fraction en puissance de deux des dimensions de la texture associée. Autrement dit, les dimensions de la carte de feedback doivent être égales aux dimensions calculées de l’un des niveaux de mip de la texture associée, que ce niveau de mip soit présent ou non dans la texture associée. Figure 1. Représentation de la carte de feedback MinMip Diagramme représentant une carte de feedback MinMip Une carte de feedback MinMip (illustrée à la figure 1) est définie comme une texture sans mip associée à une texture. Elle a la même dimensionnalité de ressource que la texture associée : par exemple, la carte de feedback MinMip d’une texture en tableau avec mipmaps est une texture en tableau avec un seul mip. La carte de feedback MinMip d’une texture de volume avec mipmaps est une texture de volume avec un seul mip. Chaque texel de la carte de feedback MinMip est une valeur numérique représentant le plus grand niveau de mip (valeur la plus faible) échantillonné dans la texture associée au sein de cette région. Les texels de la carte de feedback MinMip utilisent un format d’élément de 8 bits, encodé en valeur à virgule fixe non signée 5.3. La taille de la région d’un texel de carte de feedback MinMip est une fraction en puissance de deux des dimensions de la texture associée. En général, la taille de région choisie correspond aux dimensions d’une tuile de 64 Ko de la texture associée, ou à un petit multiple de celles-ci. Lorsque l’opération matérielle de sampler feedback écrit dans une carte de feedback MinMip, elle utilise une opération MIN atomique pour effectuer l’écriture. Pour recueillir un feedback précis, tous les texels de la carte de feedback MinMip doivent être initialisés à une valeur initiale élevée (31,875, encodée en 0xFF) avant l’écriture du feedback. Figure 2. Représentation de la carte de feedback MipRegionUsed Diagramme représentant une carte de feedback MipRegionUsed Une carte de feedback MipRegionUsed (illustrée à la figure 2) est définie comme une texture avec mips associée à une texture. Elle a la même dimensionnalité de ressource que la texture associée : par exemple, la carte de feedback MipRegionUsed d’une texture en tableau avec mipmaps est une texture en tableau avec mipmaps. La carte de feedback MipRegionUsed d’une texture de volume avec mipmaps est une texture de volume avec mipmaps. Chaque texel de la carte de feedback MipRegionUsed est un ensemble d’indicateurs signalant si cet emplacement a été échantillonné dans la texture associée au sein de cette région. Les texels de la carte de feedback MipRegionUsed utilisent un format d’élément de 8 bits, l’indicateur d’échantillonnage étant enregistré dans chaque élément. La taille de la région d’un texel de carte de feedback MipRegionUsed est une fraction en puissance de deux des dimensions de la texture associée. Lorsque l’opération matérielle de sampler feedback écrit dans une carte de feedback MipRegionUsed, elle utilise une opération OR atomique pour écrire l’indicateur d’échantillonnage. Pour recueillir un feedback précis, tous les texels de la carte de feedback MipRegionUsed doivent être initialisés à zéro avant l’écriture du feedback.

Programmation matérielle des cartes de feedback

Le moteur de shaders du GPU implémente des dizaines de variantes d’instructions d’échantillonnage d’images, chacune incluant ou excluant diverses options, comme les gradients spécifiés par l’utilisateur et le plafonnement du LOD. Sampler Feedback représenterait une variante supplémentaire de toutes ces opérations existantes. Cependant, au lieu de doubler le nombre d’opcodes de shader, Sampler Feedback est déclenché à l’aide d’un descripteur d’image encodé de manière spéciale, appelé ressource liée. Lorsque le matériel d’adressage de textures (TA) détecte l’état de ressource liée dans le descripteur d’image en entrée, le chemin de sampler feedback est sélectionné à la place du chemin d’échantillonnage de textures standard. Un descripteur de ressource liée est construit en procédant comme suit.
  1. Un descripteur d’image est construit (ou copié) à partir des spécifications de la texture associée, notamment le type de ressource de la texture associée (par exemple, 1D, 2D, tableau 2D et 3D) et, par exemple, les dimensions UVW ainsi que le nombre de mips et de tranches.
  2. Le descripteur est marqué comme ressource liée en définissant un indicateur et en sélectionnant le type de ressource liée (feedback MinMip ou feedback MipRegionUsed) dans un champ distinct.
  3. La dimension de la carte de feedback est stockée dans un champ. Elle est encodée sous forme de fractions en puissance de deux des dimensions de base. Des fractions distinctes sont utilisées pour la dimension U et pour les dimensions V ou W.
  4. Pour les cartes de feedback MinMip, le niveau de mip maximal est défini sur 0 afin de supprimer la chaîne de mips.
Les cartes de feedback du GPU XBOX Series X|S possèdent également les attributs suivants, définis dans le descripteur d’image.
  1. Le format d’image est R8_UINT pour les cartes de feedback MinMip et MipRegionUsed. Le GPU XBOX Series X|S est capable d’effectuer des opérations atomiques sur des valeurs d’octet, alors que les GPU précédents étaient généralement limités aux opérations atomiques 32 bits. Le matériel de sampler feedback utilise un encodage à virgule fixe non signé 5.3 pour les cartes de feedback MinMip.
  2. Le pilote sélectionne le mode swizzle SW_256B_S pour les cartes de feedback, car il présente les restrictions d’alignement les plus faibles et convient le mieux aux petites textures comme les cartes de feedback.
Grâce à la conception par descripteur de ressource liée, Sampler Feedback peut utiliser tous les opcodes de shader d’échantillonnage d’images existants sans modification. En outre, avec cet encodage, un seul descripteur d’image est nécessaire pour référencer deux textures différentes (la texture associée et la texture de carte de feedback), ce qui réduit la pression sur les registres dans le shader.

Restrictions matérielles de Sampler Feedback

Sampler Feedback présente les restrictions matérielles suivantes.
  1. Aucune prise en charge des décalages de texels entiers non nuls
  2. Aucune prise en charge des images de texture 2D avec anticrénelage multi-échantillon (MSAA)
  3. Aucune prise en charge des coordonnées non normalisées
  4. Aucune prise en charge des opérations d’échantillonnage Gather

Filtrage de carte MinMip

Sampler Feedback for Streaming (SFS) introduit le concept de « carte MinMip », qui fournit un plafonnement du LOD minimal par région pour une texture en mosaïque, afin que l’échantillonnage de cette texture pendant le rendu de la scène puisse être limité à l’ensemble des tuiles résidentes. Chaque élément de la carte MinMip représente une région de l’espace UV d’une texture en mosaïque, et sa valeur représente l’index de LOD du plus grand niveau de mip entièrement résident sur toute cette région. Une carte MinMip (illustrée à la figure 3) est utilisée dans le cadre d’une lecture de texture dépendante lors de l’échantillonnage d’une ressource en mosaïque. La carte MinMip est échantillonnée avec le filtre de carte MinMip et les coordonnées UV(W) de la texture, ce qui produit un résultat filtré : une valeur de plafonnement MinMip pour ces coordonnées UV(W). Cette valeur de plafonnement MinMip est ensuite utilisée pour échantillonner la texture en mosaïque, à l’aide de la forme de la méthode d’échantillonnage de textures avec plafonnement par pixel. Figure 3. Représentation de la carte MinMip Diagramme représentant une carte MinMip

Conception du filtre matériel

Le GPU XBOX Series X|S comprend un nouveau filtre bilinéaire modifié, conçu spécifiquement pour filtrer les cartes MinMip et pour succéder au filtre « MIN reduction » introduit avec les ressources en mosaïque (Tiled Resources) de Direct3D 11. Ce nouveau filtre intègre une opération MIN qui déplace la transition bilinéaire entre texels adjacents vers la région du texel de valeur inférieure. En outre, le filtre dispose d’une pente et de décalages configurables qui ajustent son rendu visuel.
D’autres détails seront ajoutés à cette section dans une version ultérieure.

Programmation matérielle du filtrage de carte MinMip

Le filtre MinMip est programmé dans le matériel par la combinaison d’un descripteur d’image modifié pour la carte MinMip et d’un état d’échantillonneur modifié contenant les valeurs de pente et de décalage du filtre. Le descripteur d’image modifié est un descripteur d’image de « ressource liée », construit de manière similaire au descripteur d’image de carte de feedback MinMip décrit précédemment dans la section Programmation matérielle des cartes de feedback. Le descripteur doit être construit avec les dimensions de la texture en mosaïque, tandis que les dimensions de la carte MinMip sont spécifiées sous forme de fraction en puissance de deux des dimensions de la texture en mosaïque. L’état d’échantillonneur comprend de nouveaux champs qui spécifient les valeurs de pente et de décalage du filtre MinMip, dans les directions U et V. Pour le filtrage de cartes MinMip de volume, la pente/le décalage U du descripteur d’échantillonneur est utilisé pour les directions U et V, tandis que la pente/le décalage V du descripteur d’échantillonneur est utilisé pour la direction W. La pente du filtre peut être choisie parmi les 8 valeurs suivantes : 2.5, 3, 4, 5, 8, 16, 32, 64. Le décalage du filtre peut être choisi parmi les 6 valeurs suivantes : 1/4, 1/8, 1/16, 1/32, 1/64, 1/128. La pente augmente la netteté visuelle du filtre. Des valeurs plus élevées donnent un aspect plus net. La valeur de décalage éloigne l’extrémité du filtre de la frontière entre éléments adjacents de la carte MinMip. Le décalage du filtre permet de garantir que le noyau de filtrage à quatre échantillons utilisé pour échantillonner la carte MinMip n’inclut pas de valeurs situées de l’autre côté de la frontière du texel, qui pourraient représenter des niveaux de mip non résidents. La valeur de décalage doit être choisie à l’aide de la formule 1/(2^(MaxLOD - MinLOD + 1)), où MaxLOD et MinLOD représentent la plus grande différence de valeurs de LOD attendue de part et d’autre d’une frontière de texel dans la carte MinMip. Par exemple, si la carte MinMip contient des valeurs de 5.0 pour représenter la résidence du niveau de mip 5, et qu’une valeur de 0.0 peut potentiellement apparaître à côté d’une valeur de 5, la valeur de décalage doit être (1/(2^(5 - 0 + 1))), soit 1/64.

Voir aussi

Préversion de l’API Direct3D 12 de Sampler Feedback Pourquoi Sampler Feedback Vue d’ensemble de Sampler Feedback (préversion)
Last modified on October 6, 2026