Share via


Capture d'informations Graphics

Vous pouvez capturer les informations graphiques de votre application basée sur DirectX de façon à utiliser les outils Graphics Diagnostics Visual Studio pour diagnostiquer des problèmes de rendu.

Méthodes de capture

Dans Windows 8.1, le runtime DirectX 11.2 peut capturer des informations graphiques en interne pour le compte d'outils de débogage comme Graphics Diagnostics. C'est ce que l'on appelle la capture robuste. Avant l'ajout de cette prise en charge au runtime DirectX, la capture des informations graphiques se faisait par l'interception de certains appels de fonction DirectX chargés d'enregistrer des arguments et autres informations avant d'être transférés à DirectX pour y être traités. Il s'agit dans ce cas de capture héritée.

Étant donné que le runtime DirectX est entièrement responsable de la capture d'informations graphiques dans Windows 8.1, il n'est pas nécessaire de mettre à jour la capture héritée pour prendre en charge DirectX 11.2. D'ailleurs, la capture héritée est déconseillée. Cependant, sachant que le runtime DirectX 11.2 ne prend pas en charge les versions de Windows antérieures à Windows 8.1, Visual Studio 2013 prend toujours en charge la capture héritée pour les applications destinées à Windows 8 et Windows 7.

Les deux méthodes enregistrent des informations similaires et ne modifient pas la façon dont vous capturez les informations graphiques ou utilisez les outils Graphics Diagnostics.

Capture robuste

La capture robuste prend en charge les outils Graphics Diagnostics de Visual Studio 2013 sous Windows 8.1, Windows RT 8.1 et Windows Phone 8.1. Elle prend en charge DirectX, de la version 10.0 à la version 11.2, et peut capturer des informations graphiques sur les nouvelle fonctionnalités de Direct3D 11.2 (par exemple, les ressources en mosaïque). Cependant, elle ne prend pas entièrement en charge toutes les fonctionnalités de Direct3D 11.2. Par exemple, vous ne pouvez pas déboguer un nuanceur HLSL créé à l'aide de la fonctionnalité de liaison de nuanceur HLSL. La capture robuste utilise une nouvelle API de capture pour prendre en charge ses scénarios de capture par programmation.

Capture héritée

La capture héritée prend en charge les outils Graphics Diagnostics de Visual Studio 2013 et Visual Studio 2012 sous Windows 8, Windows RT 8 et Windows 7. Elle prend en charge DirectX, de la version 10.0 à la version 11.1. La capture héritée ne prend en charge aucune fonctionnalité de Direct3D 11.2 et est déconseillée, sauf pour les scénarios où la capture robuste n'est pas disponible. La capture héritée utilise l'API de capture définie dans le fichier d'en-tête vsgcapture.h pour prendre en charge ses scénarios de capture par programmation. Ce type de capture par programmation est aussi déconseillée, sauf pour les scénarios où la capture robuste n'est pas disponible.

Capture d'informations graphiques

La capture d'informations graphiques est un processus en deux étapes. Vous devez tout d'abord exécuter l'application dans Graphics Diagnostics, puis spécifier un ou plusieurs types de frames à partir desquels capturer des informations détaillées.

Pour exécuter l'application dans Graphics Diagnostics

  • Dans la barre de menus, choisissez Déboguer, Graphiques, Démarrer les diagnostics. (Clavier : appuyez sur Alt+F5)

  • Dans la barre d'outils Graphics Diagnostics, choisissez Démarrer les diagnostics.

Lorsqu'une application s'exécute dans Graphics Diagnostics, certains types d'informations graphiques sont systématiquement capturés. Notamment l'installation de périphérique, la création de chaîne de permutation, la création d'objets graphiques et de ressources, et d'autres événements significatifs qui affectent plusieurs frames. En même temps, vous pouvez capturer des informations détaillées sur des frames spécifiques. Cela inclut des appels de dessin et des distributions de nuanceur de calcul, ainsi que des objets Direct3D et des ressources qui les prennent en charge.

Pour capturer un frame

  • Dans Visual Studio, dans la barre d'outils Graphics Diagnostics , choisissez le bouton Capturer le frameIcône du bouton de capture de graphiques.

  • Appuyez sur la touche Impr. écran du clavier.

    Notes

    Lorsqu'une application s'exécute sous Graphics Diagnostics, la touche Impr. écran sert uniquement à capturer un frame d'informations graphiques. Elle n'effectue pas sa fonction habituelle.Cela reste en vigueur jusqu'à ce que vous ayez arrêté de capturer des informations graphiques (en général en arrêtant le débogage ou en quittant l'application normalement) même si une autre application est dans le focus.

  • Dans Visual Studio 2013 Update 3, l'interface pour la capture de frames a changé. Dans l'interface de capture Visual Studio, choisissez le bouton Capturer le frame situé au-dessus de la chronologie Session de diagnostic. Sinon, choisissez le grand bouton Capturer le frame situé sous la zone Frames par seconde et à la droite des frames précédemment capturés. Les deux boutons sont mis en évidence dans l'image ci-dessous.

    Capturer des frames à l'aide de l'outil Utilisation du GPU.

    Lorsque vous êtes prêt à examiner les frames que vous avez capturés, lancez l'analyse graphique de Visual Studio en suivant le lienFrame... au-dessus des images miniatures ou en double-cliquant sur la miniature.

Seuls les frames entiers peuvent être capturés. Par conséquent, lorsque vous faites une capture, il s'agit en fait des informations graphiques provenant du frame suivant qui sont enregistrées. L'enregistrement démarre dès que le frame dans lequel vous avez lancé la capture est affiché et se termine lorsque le frame capturé est affiché. Vous pouvez capturer autant de frames que vous souhaitez tant que l'application s'exécute dans Graphics Diagnostics. Si vous ne capturez pas frame, le journal de graphisme est ignoré.

Lorsque vous capturez un frame pour la première fois, Visual Studio affiche la fenêtre de document du journal de graphisme (.vsglog). Si vous fermez cette fenêtre, arrêtez le débogage, ou fermez l'application. Vous ne pouvez alors plus capturer de frames supplémentaires dans ce journal. Pour capturer des informations graphiques supplémentaires, vous devez à nouveau exécuter l'application Graphics Diagnostics pour démarrer un nouveau journal de graphisme.

Options de capture de Graphics Diagnostics

Vous pouvez configurer la capture pour collecter les piles des appels de tous les événements graphiques ou d'une partie limitée de ces derniers, désactiver le HUD de capture, et activer ou désactiver le mode de compatibilité de capture.

Pour configurer les options de capture de Graphics Diagnostics

  1. Dans la barre de menus, sélectionnez Outils, Options. La boîte de dialogue Options s'affiche.

  2. Dans la liste des catégories d'options sur la gauche, choisissez Graphics Diagnostics, puis configurez les options Graphics Diagnostics de votre choix.

    • Collecter les piles des appels durant la capture (ralentit la capture)
      Cochez cette case pour collecter les piles des appels. Par défaut, les piles des appels sont collectées, et pour les marqueurs de dessin, de répartition, de présentation et de performances est sélectionnée. Pour capturer les piles des appels de tous les événements, sélectionnez pour tout. Pour ne pas collecter les piles des appels, décochez la case Collecter les piles des appels durant la capture (ralentit la capture).

    • Désactiver le HUD dans le jeu durant la capture
      Cochez cette case pour désactiver le HUD superposé qu'une application en cours d'exécution sous Graphics Diagnostics affiche généralement. Décochez cette case pour afficher le HUD superposé.

    • Capture en mode de compatibilité
      Cochez cette case pour capturer les informations graphiques en mode de compatibilité. Par défaut, la capture est effectuée en mode de compatibilité. En mode de compatibilité, Direct3D ne signale pas que le GPU prend en charge des fonctionnalités supplémentaires au-delà de celles définies dans le niveau de fonctionnalité de base. Cela empêche l'application capturée d'utiliser les extensions spécifiques au matériel du GPU sur lequel elle est capturée. En outre, cela garantit que le journal de graphisme peut être lu à l'aide de n'importe quel GPU prenant en charge un niveau de fonctionnalité identique ou supérieur. Décochez cette case pour désactiver le mode de compatibilité. Les journaux capturés quand le mode de compatibilité est désactivé ne peuvent pas être lus sur un GPU qui ne prend pas en charge les mêmes fonctionnalités supplémentaires que celles utilisées par l'application durant la capture.

Capture d'informations graphiques à distance

Les informations graphiques peuvent être capturées à partir d'une application qui est exécutée sur un ordinateur local, un ordinateur ou un appareil distant. La capture distante est prise en charge pour les ordinateurs Windows 8.1 et les appareils Windows RT 8.1. Pour capturer des informations graphiques à partir d'une application exécutée à distance, configurez votre projet pour le débogage distant et exécutez l'application dans Graphics Diagnostics comme décrit plus haut. L'application s'exécute sur l'ordinateur distant, les informations graphiques capturées sont stockées sur votre ordinateur de développement.

La façon dont vous configurez votre projet pour le débogage distant dépend du type d'application et du langage de programmation que vous utilisez. Pour plus d'informations sur la configuration du débogage distant pour une application Windows Store, consultez Exécuter des applications du Windows Store sur un ordinateur distant à partir de Visual Studio. Pour plus d'informations sur la configuration du débogage distant pour une application de Bureau Windows, consultez Configuration du débogage distant pour un projet Visual Studio.

Vous pouvez utiliser par la suite un ordinateur ou un appareil distant pour lire des informations graphiques, indépendamment de l'endroit où les informations ont été capturées. Pour plus d'informations, consultez Comment : modifier l'ordinateur de lecture Graphics Diagnostics.

Capture d'informations graphiques à partir de la ligne de commande

Vous pouvez capturer des informations graphiques à partir d'une application via un outil en ligne de commande. Cet outil, DXCap.exe, peut rapidement capturer et lire des informations graphiques sans passer par Visual Studio ou une capture par programmation. En particulier, vous pouvez utiliser DXCap.exe pour l'automatisation ou dans un environnement de test. Pour plus d'informations sur DXCap.exe, consultez Outil en ligne de commande de capture

Voir aussi

Tâches

Procédure pas à pas : capture d'informations Graphics