Étapes de canalisation GraphicsGraphics Pipeline Stages

La fenêtre Étapes de canalisation Graphics vous permet de comprendre comment un appel de dessin individuel est transformé par chaque étape de canalisation graphismes Direct3D.The Graphics Pipeline Stages window helps you understand how an individual draw call is transformed by each stage of the Direct3D graphics pipeline.

Voici la fenêtre Étapes de canalisation :This is the Pipeline Stages window:

Un objet 3D traverse les étapes du pipeline.

Présentation de la fenêtre Étapes de canalisation GraphicsUnderstanding the Graphics Pipeline Stages window

La fenêtre Étapes de canalisation affiche le résultat de chaque étape de canalisation Graphics séparément, pour chaque appel de dessin.The Pipeline Stages window visualizes the result of each stage of the graphics pipeline separately, for each draw call. Normalement, les résultats des étapes de canalisation intermédiaires sont masqués, ce qui complique la tâche consistant à déterminer l'origine d'un problème de rendu.Normally, the results of stages in the middle of the pipeline are hidden, making it difficult to tell where a rendering problem started. En affichant chaque étape séparément, la fenêtre Étapes de canalisation facilite l'identification de l'origine du problème. Par exemple, vous pouvez voir aisément le moment où l'étape du nuanceur de sommets provoque soudainement le dessin d'un objet hors de l'écran.By visualizing each stage separately, the Pipeline Stages window makes it easy to see where the problem starts—for example, you can easily see when the vertex shader stage unexpectedly causes an object to be drawn off-screen.

Une fois que vous avez identifié l'étape durant laquelle le problème se produit, vous pouvez utiliser les autres outils Graphics Analyzer pour examiner la façon dont les données ont été interprétées ou transformées.After you've identified the stage in which the problem occurs, you can use the other Graphics Analyzer tools to examine how the data was interpreted or transformed. Les problèmes de rendu qui apparaissent aux étapes de canalisation sont souvent liés à des descripteurs de format de sommet incorrects, à des programmes de nuanceur bogués ou à un état mal configuré.Rendering problems that appear in the pipeline stages are often related to incorrect vertex format descriptors, buggy shader programs, or misconfigured state.

Parfois, un contexte supplémentaire est nécessaire pour déterminer la raison pour laquelle un appel de dessin interagit de façon spécifique avec la canalisation Graphics.Sometimes additional context is needed to determine why a draw call interacts in a particular way with the graphics pipeline. Pour faciliter la recherche de ce contexte supplémentaire, la fenêtre Étapes de canalisation Graphics comporte des liens vers un ou plusieurs objets qui fournissent un contexte supplémentaire relatif à ce qui se passe dans la canalisation Graphics.To make this additional context easier to find, the Graphics Pipeline Stages window links to one or more objects that provide additional context related to what's happening in the graphics pipeline.

  • Dans Direct3D 12, cet objet est généralement une liste de commandes.In Direct3D 12 this object is usually a command list.

  • Dans Direct3D 11, cet objet est généralement un contexte de périphérique graphique.In Direct3D 11 this object is usually a graphics device context.

    Ces liens font partie de la signature d'événement Graphics actuelle dans le coin supérieur gauche de la fenêtre Étapes de canalisation Graphics.These links are part of the current graphics event signature that's located in the upper left-hand corner of the Graphics Pipeline Stages window. Suivez ces liens pour obtenir des détails supplémentaires sur l'objet.Follow any of these links to examine additional details about the object.

Affichage et débogage du code du nuanceurViewing and debugging shader code

Vous pouvez examiner et déboguer le code des nuanceurs de sommets, de coques, de domaines, de géométries et de pixels à l'aide des contrôles situés au bas de leurs étapes respectives dans la fenêtre Étapes de canalisation.You can examine and debug code for vertex, hull, domain, geometry and pixel shaders by using the controls at the bottom of their respective stages in the Pipeline Stages window.

Pour afficher le code source d'un nuanceurTo view a shader's source code

  • Dans le étapes de canalisation Graphics fenêtre, localisez l’étape de nuanceur qui correspond au nuanceur à examiner.In the Graphics Pipeline Stages window, locate the shader stage that corresponds to the shader you want to examine. Ensuite, sous l’image d’aperçu, suivez le lien de titre d’étape du nuanceur, par exemple, suivez le lien nuanceur de sommets obj : 30 pour afficher le code source de nuanceur de sommets.Then, below the preview image, follow the shader stage title link—for example, follow the link Vertex Shader obj:30 to view the vertex shader source code.

    Tip

    Le numéro d’objet, obj : 30, identifie ce nuanceur dans toute l’interface Graphics Analyzer par exemple, dans la fenêtre d’historique de l’objet table et de pixels.The object number, obj:30, identifies this shader throughout the Graphics Analyzer interface such as in the object table and pixel history window.

Pour déboguer un nuanceurTo debug a shader

  • Dans le étapes de canalisation Graphics fenêtre, localisez l’étape de nuanceur qui correspond au nuanceur à déboguer.In the Graphics Pipeline Stages window, locate the shader stage that corresponds to the shader you want to debug. Puis, sous l’image d’aperçu, choisissez démarrer le débogage.Then, below the preview image, choose Start Debugging. La valeur par défaut de ce point d'entrée dans le débogueur HLSL correspond au premier appel du nuanceur pour l'étape correspondante, c'est-à-dire le premier pixel, le premier sommet ou la première primitive traitée par le nuanceur durant cet appel de dessin.This entry point into the HLSL debugger defaults to the first invocation of the shader for the corresponding stage—that is, the first pixel, vertex, or primitive that's processed by the shader during this draw call. Appels de ce nuanceur pour un pixel spécifique ou un sommet est accessible via la historique des pixels Graphics.Invocations of this shader for a specific pixel or vertex can be accessed through the Graphics Pixel History.

Étapes de canalisationThe pipeline stages

La fenêtre Étapes de canalisation affiche uniquement les étapes de canalisation actives durant l'appel de dessin.The Pipeline Stages window visualizes only the stages of the pipeline that were active during the draw call. Chaque étape de canalisation Graphics transforme l'entrée de l'étape précédente et passe le résultat à l'étape suivante.Each stage of the graphics pipeline transforms input from the previous stage and passes the result to the next stage. La première étape (Assembleur d’entrée) récupère les données d’index et de sommet de votre application en entrée. La toute dernière étape (Fusion de sortie) combine les pixels qui viennent d’être rendus au contenu actuel du tampon de frame ou de la cible de rendu en tant que sortie pour produire l’image finale que vous voyez sur votre écran.The very first stage—the Input Assembler—takes index and vertex data from your app as its input; the very last stage—the Output Merger—combines newly rendered pixels together with the current contents of the framebuffer or render target as its output to produce the final image you see on your screen.

Note

Les nuanceurs de calcul ne sont pas pris en charge dans les étapes de canalisation Graphics fenêtre.Compute shaders are not supported in the Graphics Pipeline Stages window.

Assembleur d’entréeInput Assembler
L'assembleur d'entrée lit les données d'index et de sommet spécifiées par votre application, et les assemble pour le matériel graphique.The Input Assembler reads index and vertex data specified by your app and assembles it for the graphics hardware.

Dans la fenêtre Étapes de canalisation, la sortie de l'assembleur d'entrée est affichée sous la forme d'un modèle filaire.In the Pipeline Stages window, the Input Assembler output is visualized as a wireframe model. Pour mieux examiner le résultat, sélectionnez assembleur d’entrée dans les étapes de canalisation Graphics fenêtre pour afficher les sommets assemblés entièrement en 3D à l’aide de l’éditeur de modèle.To take a closer look at the result, select Input Assembler in the Graphics Pipeline Stages window to view the assembled vertices in full 3D using the Model Editor.

Note

Si le POSITION sémantique n’est pas présent dans la sortie de l’assembleur d’entrée, alors rien ne s’affiche dans le assembleur d’entrée étape.If the POSITION semantic is not present in the input assembler output, then nothing is displayed in the Input Assembler stage.

Nuanceur de sommetsVertex Shader
L'étape du nuanceur de sommets traite les sommets, en effectuant généralement des opérations telles que la transformation, l'application d'apparences et l'éclairage.The vertex shader stage processes vertices, typically performing operations such as transformation, skinning, and lighting. Les nuanceurs de sommets produisent le même nombre de sommets que ceux qu'ils acceptent en entrée.Vertex shaders produce the same number of vertices that they takes as input.

Dans la fenêtre Étapes de canalisation, la sortie du nuanceur de sommets est affichée sous la forme d'une image raster filaire.In the Pipeline Stages window, the Vertex Shader output is visualized as a wireframe raster image. Pour mieux examiner le résultat, sélectionnez nuanceur de sommets dans les étapes de canalisation Graphics afin d’afficher les sommets traités dans l’éditeur d’images.To take a closer look at the result, select Vertex Shader in the Graphics Pipeline Stages windows to view the processed vertices in the Image Editor.

Note

Si le POSITION ou SV_POSITION sémantique n’est pas présente dans la sortie du nuanceur de sommets, alors rien ne s’affiche dans le nuanceur de sommets étape.If the POSITION or SV_POSITION semantics are not present in the vertex shader output, then nothing is displayed in the Vertex Shader stage.

Nuanceur de coque (Direct3D 11 et Direct3D 12 uniquement)Hull Shader (Direct3D 11 and Direct3D 12 only)
L'étape du nuanceur de coque traite les points de contrôle qui définissent une surface de poids faible comme une ligne, un triangle ou un quadrilatère.The hull shader stage processes control points that define a low-order surface such as a line, triangle, or quad. En sortie, il génère un correctif de géométrie de poids supérieur et des constantes de correction qui sont passés à l'étape de pavage à fonction fixe.As output it produces a higher-order geometry patch and patch constants that are passed to the fixed-function tessellation stage.

L'étape du nuanceur de coque n'est pas affichée dans la fenêtre Étapes de canalisation.The hull shader stage is not visualized in the Pipeline Stages window.

Étape du paveur (Direct3D 11 et Direct3D 12 uniquement)Tessellator Stage (Direct3D 11 and Direct3D 12 only)
L'étape du paveur est une unité matérielle à fonction fixe (non programmable) qui prétraite le domaine représenté par la sortie du nuanceur de coque.The tessellator stage is a fixed function (non-programmable) hardware unit that preprocesses the domain represented by the output of the hull shader. En sortie, il crée un modèle d'échantillonnage du domaine et un ensemble de primitives plus petites (points, lignes, triangles) qui connectent ces exemples.As output, it creates a sampling pattern of the domain and a set of smaller primitives—points, lines, triangles—that connect these samples.

L'étape du paveur n'est pas affichée dans la fenêtre Étapes de canalisation.The tessellator stage is not visualized in the Pipeline Stages window.

Nuanceur de domaine (Direct3D 11 et Direct3D 12 uniquement)Domain Shader (Direct3D 11 and Direct3D 12 only)
L’étape du nuanceur de domaine traite les correctifs de géométrie de poids supérieur du nuanceur de coque, ainsi que les facteurs de pavage de l’étape de pavage.The domain shader stage processes higher-order geometry patches from the Hull shader, together tessellation factors from the tessellation stage. Les facteurs de pavage peuvent inclure les facteurs d'entrée du paveur, ainsi que les facteurs de sortie.The tessellation factors can be include tessellator input factors as well as output factors. En sortie, cette étape calcule la position du sommet d'un point dans le correctif de sortie en fonction des facteurs du paveur.As output, it calculates the vertex position of a point on the output patch according the tessellator factors.

L'étape du nuanceur de domaine n'est pas affichée dans la fenêtre Étapes de canalisation.The domain shader stage is not visualized in the Pipeline Stages window.

Nuanceur de géométrieGeometry Shader
L'étape du nuanceur de géométrie traite les primitives entières (points, lignes ou triangles), ainsi que les données de sommet facultatives des primitives à bords adjacents.The geometry shader stage processes entire primitives—points, lines, or triangles—along with optional vertex data for edge-adjacent primitives. Contrairement aux nuanceurs de sommets, les nuanceurs de géométries peuvent produire plus ou moins de primitives que ce qu'ils acceptent en entrée.Unlike vertex shaders, geometry shaders can produce more or fewer primitives than they take as input.

Dans la fenêtre Étapes de canalisation, la sortie du nuanceur de géométrie est affichée sous la forme d'une image raster filaire.In the Pipeline Stages window, geometry shader output is visualized as a wireframe raster image. Pour mieux examiner le résultat, sélectionnez nuanceur de géométrie dans les étapes de canalisation Graphics fenêtre pour afficher les primitives traitées dans l’éditeur d’images.To take a closer look at the result, select Geometry Shader in the Graphics Pipeline Stages window to view the processed primitives in the Image Editor.

Étape de sortie de flux de donnéesStream Output Stage
L'étape de sortie de flux peut intercepter les primitives transformées avant la rastérisation, et les écrire en mémoire. Les données peuvent ensuite être recyclées en entrée à des étapes antérieures de la canalisation Graphics, ou être relues par l'UC.The stream output stage can intercept transformed primitives prior to rasterization and write them to memory; from there the data can be recirculated as input to earlier stages of the graphics pipeline or be read back by the CPU.

L'étape de sortie de flux n'est pas affichée dans la fenêtre Étapes de canalisation.The stream output stage is not visualized in the Pipeline Stages window.

Étape du rastériseurRasterizer Stage
L'étape du rastériseur est une unité matérielle à fonction fixe (non programmable) qui convertit les primitives vectorielles (points, lignes, triangles) en image raster en effectuant une conversion de lignes de balayage.The rasterizer stage is a fixed function (non-programmable) hardware unit that converts vector primitives—points, lines, triangles—into a raster image by performing scan-line conversion. Durant la rastérisation, les sommets sont transformés dans l'espace de détourage, puis détourés.During rasterization vertices are transformed into the homogenous clip-space and clipped. En sortie, les nuanceurs de pixels sont mappés. Par ailleurs, les attributs de chaque sommet sont interpolés dans la primitive et préparés pour le nuanceur de pixels.As output, pixel shaders are mapped and per-vertex attributes are interpolated across the primitive and made ready for the pixel shader.

L'étape du rastériseur n'est pas affichée dans la fenêtre Étapes de canalisation.The rasterizer stage is not visualized in the Pipeline Stages window.

Nuanceur de pixelsPixel Shader
L'étape du nuanceur de pixels traite les primitives rastérisées, ainsi que les données de sommet interpolées pour générer des valeurs spécifiques à chaque pixel, par exemple la couleur et la profondeur.The pixel shader stage processes rasterized primitives together with interpolated vertex data to generate per-pixel values such as color and depth.

Dans la fenêtre Étapes de canalisation, la sortie du nuanceur de pixels est affichée sous la forme d'une image raster en couleurs.In the Pipeline Stages window, pixel shader output is visualized as a full-color raster image. Pour mieux examiner le résultat, sélectionnez nuanceur de pixels dans les étapes de canalisation Graphics fenêtre pour afficher les primitives traitées dans l’éditeur d’images.To take a closer look at the result, select Pixel Shader in the Graphics Pipeline Stages window to view the processed primitives in the Image Editor.

Fusion de sortieOutput Merger
L’étape de fusion de sortie combine l’effet des pixels qui viennent d’être rendus au contenu existant de leurs mémoires tampons correspondantes (couleur, profondeur et gabarit) pour produire de nouvelles valeurs dans ces mémoires tampons.The output merger stage combines the effect of newly-rendered pixels together with the existing contents of their corresponding buffers—color, depth, and stencil—to produce new values in these buffers.

Dans la fenêtre Étapes de canalisation, la sortie de la fusion de sortie est affichée sous la forme d’une image raster en couleurs.In the Pipeline Stages window, output merger output is visualized as a full-color raster image. Pour étudier les résultats, sélectionnez fusion de sortie dans les étapes de canalisation Graphics fenêtre pour afficher le tampon de frame fusionné.To take a closer look at the results, select Output Merger in the Graphics Pipeline Stages window to view the merged framebuffer.

Aperçu du nuanceur de géométrie et de sommetVertex and Geometry shader preview

Lorsque vous sélectionnez l’étape du nuanceur de sommets ou de géométrie dans le canalisation , vous pouvez afficher les entrées et les sorties du nuanceur de dans le panneau de configuration ci-dessous.When you select the vertex or geometry shader stage in the Pipeline Stages window, you can view the inputs to and outputs from the shader in the panel below. Ici, vous trouverez plus d’informations sur la liste des sommets fournis pour les nuanceurs, une fois qu’ils ont été assemblés à l’étape de l’assembleur d’entrée.Here, you'll find details about the list of vertices supplied to the shaders after they have been assembled by the input assembler stage.

Visionneuse de mémoire tampon d'entrée de l'étape du nuanceur de sommets

Pour afficher le résultat de l'étape du nuanceur de sommets, choisissez la miniature de l'étape Nuanceur de sommets afin d'accéder à une image filaire rastérisée en taille réelle du maillage après sa transformation par le nuanceur de sommets.To view the result of the vertex shader stage, choose the Vertex Shader stage thumbnail to view a full-size, rasterized wireframe of the mesh after its been transformed by the vertex shader.

Aperçu du résultat de l'étape du nuanceur de sommets

Voir aussiSee Also

Procédure pas à pas : Objets manquants en raison Vertex Shader Walkthrough: Missing Objects Due to Vertex Shading
Procédure pas à pas : débogage des erreurs de rendu dues à l’ombrageWalkthrough: Debugging Rendering Errors Due to Shading