> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Vue d'ensemble du pipeline de nuanceurs de maillage

> Comment le pipeline de nuanceurs de maillage remplace l'assembleur d'entrée par des étapes programmables d'amplification et de maillage pour une géométrie évolutive sur la XBOX Series X|S.

Les GPU RTX Turing et AMD RDNA 2.0 introduisent un nouveau pipeline de traitement de la géométrie. Ce pipeline est constitué de deux nouvelles étapes de nuanceurs programmables, le nuanceur d'amplification et le nuanceur de maillage, et n'utilise pas le matériel d'assembleur d'entrée ni de tessellation. Les deux étapes s'apparentent aux nuanceurs de calcul : elles exposent des groupes de threads et utilisent des ID de thread générés comme seules entrées fournies, mais elles offrent aussi des fonctionnalités propres à la soumission du traitement de la géométrie.

Ce nouveau paradigme a pour effet de déléguer les lectures d'index et de sommets à des nuanceurs programmables, ce qui leur permet d'évoluer avec le nombre de cœurs du GPU et la bande passante mémoire. Cela contourne un goulot d'étranglement croissant de l'assembleur d'entrée et facilite le lancement de travail dans le GPU à un rythme amélioré et constant. Cela fournit également une interface pour l'élimination précoce de la géométrie à plusieurs granularités, jusqu'au niveau de chaque primitive, de manière pipelinée avec de la mémoire sur puce.

**Figure 1.  Les étapes du pipeline de nuanceurs de maillage. Les étapes teintées de vert sont programmables. Les étapes teintées de bleu sont à fonction fixe.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/ms_mesh_shader_pipeline.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=1bdf8c428560eef0a048ae32c01c9759" alt="Diagramme des étapes du pipeline de nuanceurs de maillage" width="800" height="100" data-path="images/gdk/features/graphics/ms_mesh_shader_pipeline.png" />

## Nuanceurs de maillage

Les nuanceurs de maillage (MS) sont essentiellement des nuanceurs de calcul dotés de fonctions intrinsèques propres à l'étape pour exporter des sommets, des index et des données de primitives vers l'assembleur de primitives. Toutes les données doivent être lues explicitement à partir de vues de mémoire tampon constante (CBV) et de vues de ressource de nuanceur (SRV) dans le code du nuanceur.

Cela signifie que les développeurs devront adapter leur conception des appels de dessin pour mieux correspondre au flux de travail des nuanceurs de calcul. L'auteur du nuanceur détermine la taille du groupe de threads et la façon dont chaque thread est utilisé pour accomplir la charge de travail. Il a accès aux fonctions intrinsèques de vague de nuanceur et à la mémoire groupshared pour partager des données et générer efficacement une liste de primitives pour la rastérisation.

**Figure 2.  Visualisation du travail GPU réparti par un appel DispatchMesh(4, 1, 1) avec un pipeline lié comportant uniquement un nuanceur de maillage. Comme pour les nuanceurs de calcul, DispatchMesh exige un nombre de groupes de threads dans les dimensions x, y et z. Cela répartit le nombre spécifié de groupes de threads de nuanceur de maillage pour exécution.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/ms_pipeline.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=da9bfe92b2e4eb38fb3c7c45a4e84568" alt="Visualisation du travail réparti par une commande DispatchMesh avec un pipeline lié comportant uniquement un nuanceur de maillage." width="578" height="350" data-path="images/gdk/features/graphics/ms_pipeline.png" />

## Nuanceurs d'amplification

Le nuanceur d'amplification (AS) est une étape facultative qui précède l'étape du nuanceur de maillage. Cette étape s'apparente aussi à un nuanceur de calcul et peut répartir dynamiquement une grappe de groupes de threads de nuanceur de maillage. Chaque groupe de threads calcule son propre nombre de groupes de threads de nuanceur de maillage à répartir. Chaque groupe de threads comporte également jusqu'à 16 Ko de données de charge utile personnalisées et partagées à transmettre aux groupes de threads de nuanceur de maillage qu'il génère. Ces données peuvent être exportées directement à partir de la mémoire groupshared.

Les fonctionnalités des nuanceurs d'amplification permettent aux programmes de nuanceurs de réduire ou d'amplifier dynamiquement leur charge de travail selon des critères personnalisés. Cela ouvre la voie à une élimination efficace à granularité plus fine ou à une tessellation personnalisée.

**Figure 3.  Visualisation de la répartition d'un objet d'état de pipeline (PS) AS-MS. Certains groupes de threads AS choisiront de répartir des groupes de threads MS. D'autres pourraient n'en répartir aucun.**

<img src="https://mintcdn.com/microsoft-4404708b/6hkHc7s12mHcTMCE/images/gdk/features/graphics/ms_as_pipeline.png?fit=max&auto=format&n=6hkHc7s12mHcTMCE&q=85&s=8a1227f965a71d9e511a040e3651d7f8" alt="Visualisation du travail réparti par une commande DispatchMesh avec un pipeline AS-MS lié." width="953" height="350" data-path="images/gdk/features/graphics/ms_as_pipeline.png" />

## Dans cette section

## Voir aussi

[Vue d'ensemble des fonctionnalités graphiques de la XBOX Series X|S](/fr-CA/build/core-features/graphics/graphics-newfeatures-toc)
[Vue d'ensemble des graphiques](/fr-CA/build/core-features/graphics/overviews/graphics)
[Graphiques](/fr-CA/build/core-features/graphics/gc-graphics-toc)


## Related topics

- [Vue d'ensemble de Godot et des moteurs communautaires](/fr/paths/community-engines/overview.md)
- [Vue d'ensemble de l'accessibilité GDK](/fr/build/game-principles/accessibility/accessibility-overview.md)
- [Vue d'ensemble de XBOX Series X|S](/fr/paths/series-xs/overview.md)
- [Vue d'ensemble de Windows & ROG XBOX Ally](/fr/paths/windows/overview.md)
- [Vue d'ensemble de Play Anywhere (console + PC)](/fr/paths/play-anywhere/overview.md)
