Skip to main content
Le GPU de la 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 rétroaction ». La ressource de carte de rétroaction peut choisir entre deux représentations différentes, chacune ayant des attributs uniques pour divers scénarios d’utilisation. La deuxième fonctionnalité est un nouveau mode de filtrage de textures conçu spécifiquement pour filtrer les « cartes MinMip », qui servent à implémenter une limitation du niveau de détail (LOD) minimal par région d’une texture. Ce nouveau mode de filtrage est conçu pour corriger les lacunes visuelles du mode de filtrage « réduction MIN » 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 nuanceur et un état d’échantillonneur pour une texture de scène, des coordonnées UV(W) d’entrée et les gradients UV(W) calculés par interpolation. Dans le cas de l’échantillonnage de textures dans une étape de nuanceur autre que le nuanceur de pixels, 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, qui se compose d’un ou de 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 rétroaction.
  4. L’ensemble d’échantillons de texture est fusionné de l’une de deux façons.
  5. L’ensemble d’échantillons de texture fusionné est écrit dans la carte de rétroaction à l’aide d’une sémantique atomique.
Le matériel prend en charge deux représentations différentes de la carte de rétroaction. Chaque représentation définit le fonctionnement particulier des étapes de conversion des coordonnées, de fusion et d’écriture mentionnées précédemment (étapes 3 à 5). On peut considérer la carte de rétroaction comme « jumelée » à la texture pour laquelle le modèle d’échantillonnage est calculé. La carte de rétroaction est généralement beaucoup plus petite que la texture jumelée, et sa taille doit être une fraction en puissance de deux des dimensions de la texture jumelée. Autrement dit, les dimensions de la carte de rétroaction doivent être égales aux dimensions calculées de l’un des niveaux de mip de la texture jumelée, que ce niveau de mip soit présent ou non dans la texture jumelée. Figure 1. Représentation de la carte de rétroaction MinMip Diagramme représentant une carte de rétroaction MinMip Une carte de rétroaction MinMip (comme illustré à la figure 1) est définie comme une texture sans mip jumelée à une texture. Elle a la même dimensionnalité de ressource que la texture jumelée; par exemple, la carte de rétroaction MinMip d’une texture de tableau avec mipmaps est une texture de tableau avec un seul mip. La carte de rétroaction MinMip d’une texture volumique avec mipmaps est une texture volumique avec un seul mip. Chaque texel de la carte de rétroaction MinMip est une valeur numérique qui représente le plus grand niveau de mip (valeur la plus basse) échantillonné dans la texture jumelée au sein de cette région. Les texels de la carte de rétroaction MinMip utilisent un format d’élément de 8 bits, encodé comme une valeur à virgule fixe non signée 5.3. La taille de la région d’un texel de la carte de rétroaction MinMip est une fraction en puissance de deux des dimensions de la texture jumelée. Généralement, la taille de région choisie correspond aux dimensions d’une tuile de 64 Ko dans la texture jumelée, ou à un petit multiple de celles-ci. Lorsque l’opération matérielle de Sampler Feedback écrit dans une carte de rétroaction MinMip, elle utilise une opération MIN atomique pour effectuer l’écriture. Pour recueillir une rétroaction exacte, tous les texels de la carte de rétroaction MinMip doivent être initialisés à une valeur initiale élevée (31,875, encodée sous la forme 0xFF) avant l’écriture de la rétroaction. Figure 2. Représentation de la carte de rétroaction MipRegionUsed Diagramme représentant une carte de rétroaction MipRegionUsed Une carte de rétroaction MipRegionUsed (comme illustré à la figure 2) est définie comme une texture avec mips jumelée à une texture. Elle a la même dimensionnalité de ressource que la texture jumelée; par exemple, la carte de rétroaction MipRegionUsed d’une texture de tableau avec mipmaps est une texture de tableau avec mipmaps. La carte de rétroaction MipRegionUsed d’une texture volumique avec mipmaps est une texture volumique avec mipmaps. Chaque texel de la carte de rétroaction MipRegionUsed est un ensemble d’indicateurs qui indique si cet emplacement a été échantillonné dans la texture jumelée au sein de cette région. Les texels de la carte de rétroaction 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 la carte de rétroaction MipRegionUsed est une fraction en puissance de deux des dimensions de la texture jumelée. Lorsque l’opération matérielle de Sampler Feedback écrit dans une carte de rétroaction MipRegionUsed, elle utilise une opération OR atomique pour écrire l’indicateur d’échantillonnage. Pour recueillir une rétroaction exacte, tous les texels de la carte de rétroaction MipRegionUsed doivent être initialisés à zéro avant l’écriture de la rétroaction.

Programmation matérielle des cartes de rétroaction

Le moteur de nuanceurs 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 la limitation du LOD. Sampler Feedback représenterait encore une autre variante de toutes ces opérations existantes. Toutefois, plutôt que de doubler le nombre d’opcodes de nuanceur, Sampler Feedback est déclenché à l’aide d’un descripteur d’image spécialement encodé 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 d’entrée, le chemin de Sampler Feedback est sélectionné au lieu du chemin d’échantillonnage de textures standard. Un descripteur de ressource liée est construit selon les étapes suivantes.
  1. Un descripteur d’image est construit (ou copié) à partir des spécifications de la texture jumelée, y compris le type de ressource de la texture jumelé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 désigné comme ressource liée en définissant un indicateur et en sélectionnant le type de ressource liée (rétroaction MinMip ou rétroaction MipRegionUsed) dans un champ distinct.
  3. La dimension de la carte de rétroaction 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 rétroaction MinMip, le niveau de mip maximal est défini sur 0 afin de supprimer la chaîne de mips.
Les cartes de rétroaction du GPU de la XBOX Series X|S ont également les attributs suivants, définis dans le descripteur d’image.
  1. Le format d’image est R8_UINT pour les cartes de rétroaction MinMip et MipRegionUsed. Le GPU de la XBOX Series X|S peut effectuer des opérations atomiques sur des valeurs d’un octet, alors que les GPU précédents étaient généralement limités aux opérations atomiques sur 32 bits. Le matériel de Sampler Feedback utilise un encodage à virgule fixe non signé 5.3 pour les cartes de rétroaction MinMip.
  2. Le pilote sélectionne le mode de swizzle SW_256B_S pour les cartes de rétroaction, car il présente les restrictions d’alignement les plus faibles et convient le mieux aux petites textures comme les cartes de rétroaction.
Grâce à la conception par descripteur de ressource liée, Sampler Feedback peut utiliser tous les opcodes de nuanceur d’échantillonnage d’images existants sans modification. De plus, grâce à cet encodage, un seul descripteur d’image est nécessaire pour référencer deux textures différentes (la texture jumelée et la texture de carte de rétroaction), ce qui réduit la pression sur les registres dans le nuanceur.

Restrictions matérielles de Sampler Feedback

Sampler Feedback comporte 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 des cartes MinMip

Sampler Feedback for Streaming (SFS) introduit le concept de « carte MinMip », qui fournit une limitation du LOD minimal par région pour une texture en mosaïque, de sorte que l’échantillonnage de cette texture pendant le rendu de la scène peut ê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 LOD du plus grand niveau de mip entièrement résident dans toute cette région. Une carte MinMip (comme illustré à la figure 3) est utilisée dans le cadre d’une extraction 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 limitation MinMip pour ces coordonnées UV(W). La valeur de limitation MinMip est ensuite utilisée pour échantillonner la texture en mosaïque, à l’aide de la forme avec limitation par pixel de la méthode d’échantillonnage de textures. Figure 3. Représentation de la carte MinMip Diagramme représentant une carte MinMip

Conception du filtre matériel

Le GPU de la 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 « réduction MIN » 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 des texels adjacents dans la région du texel de plus faible valeur. De plus, le filtre possède une pente et des décalages configurables qui ajustent l’apparence visuelle du filtre.
D’autres détails seront ajoutés à cette section dans une version ultérieure.

Programmation matérielle du filtrage des cartes MinMip

Le filtre MinMip est programmé dans le matériel à l’aide d’une combinaison d’un descripteur d’image modifié pour la carte MinMip et d’un état d’échantillonneur modifié qui contient 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 façon semblable au descripteur d’image de carte de rétroaction MinMip, décrit précédemment dans la section Programmation matérielle des cartes de rétroaction. 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 volumiques, la pente et le décalage U du descripteur d’échantillonneur sont utilisés pour les directions U et V, tandis que la pente et le décalage V du descripteur d’échantillonneur sont utilisés 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 une apparence plus nette. La valeur de décalage éloigne l’extrémité du filtre de la frontière entre des éléments adjacents de la carte MinMip. Le décalage du filtre sert à garantir que le noyau de filtre à 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 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 pourrait potentiellement être introduite à côté d’une valeur de 5, la valeur de décalage doit être (1/(2^(5 - 0 + 1))), soit 1/64.

Voir aussi

Aperçu de l’API Direct3D 12 de Sampler Feedback Pourquoi Sampler Feedback Vue d’ensemble de Sampler Feedback (aperçu)
Last modified on October 6, 2026