- GPU Capture par l’interface utilisateur de PIX : idéale pour effectuer des captures de titres en cours d’exécution.
- GPU Capture par programmation : idéale pour effectuer des captures en fonction de scénarios de jeu. Par exemple, capturer des images lorsque vous tirez avec le fusil à plasma.
GPU Capture par l’interface utilisateur de PIX
Utilisez PIX pour effectuer une GPU Capture. Pour commencer, assurez-vous qu’un titre est en cours d’exécution avec un pilote instrumenté et que vous êtes connecté au kit de développement. L’interface utilisateur de PIX doit ressembler à la figure suivante.
Interface de capture
Les contrôles permettant d’effectuer une GPU Capture se trouvent dans la partie supérieure de la vue « XBOX Connection », ancrée par défaut en haut à gauche de la fenêtre. Sélectionnez le menu déroulant Options, comme illustré dans la figure suivante. Le raccourci clavier permettant de développer ou de réduire les options de GPU Capture est Ctrl+Maj+N.
Options de capture
Les options suivantes sont disponibles pour les GPU Captures :- Capture frame count : permet de spécifier le nombre d’images à capturer. Notez que plus le nombre d’images augmente, plus la capture est volumineuse et potentiellement difficile à parcourir.
- Include local timing capture : cette option indique à PIX d’effectuer une courte Timing Capture en plus de la GPU Capture, afin de permettre une comparaison entre le minutage du jeu à l’exécution et le minutage indiqué par l’analyse de la GPU Capture.
- Capture All GPU Mapped Memory : sur les plateformes XBOX Series X|S, seule la mémoire accédée par le GPU est capturée par défaut. Cette option indique à PIX de capturer toute la mémoire, quelle que soit son utilisation par le GPU. La sélection de cette option augmente considérablement la taille de la capture, mais garantit que toutes les ressources sont capturées, même si elles ne sont pas utilisées.
- Capture Entire GPU Accessed Textures and Buffers : sur les plateformes XBOX Series X|S, si vous ne sélectionnez pas l’option de capture de toute la mémoire GPU, vous pouvez contrôler la capture des ressources accédées par le GPU. Ces options sont utiles pour afficher des sous-ressources de texture, comme des niveaux MIP non accédés, ou des parties de tampons, comme des structures d’accélération DXR partiellement parcourues, tout en conservant une taille de fichier de capture relativement réduite.
- Enable instant Analysis : cette option amène PIX à utiliser l’« analyse instantanée » pour analyser immédiatement la GPU Capture après sa création, dans le contexte du titre en cours d’exécution. Pendant l’analyse, le titre reste en cours d’exécution, mais tous ses threads sont suspendus. Lorsque vous êtes prêt à terminer la session d’analyse, vous pouvez reprendre le titre en arrêtant l’analyse ou en fermant la capture.
GPU Capture par programmation
Les méthodes de GPU Capture capturent les mêmes données que l’outil PIX. Elles permettent de contrôler au niveau du code l’image à capturer ou le moment où les captures commencent et se terminent. L’interface ID3D12CommandQueue comporte trois méthodes. Les informations sont capturées dans un fichier sur la console. Ce fichier porte l’extension .xpix et doit être copié sur le PC de développement pour être analysé.- ID3D12CommandQueue.PIXGpuBeginCapture : utilisez cette méthode pour capturer un certain nombre d’images. Chaque appel à PIXGpuBeginCapture doit être associé à un appel à PIXGpuEndCapture. Le fichier n’est enregistré qu’une fois l’appel à PIXGpuEndCapture terminé.
- ID3D12CommandQueue.PIXGpuEndCapture : utilisez cette méthode en association avec PIXGpuBeginCapture.
- ID3D12CommandQueue.PIXGpuCaptureNextFrame : utilisez cette méthode pour capturer une seule image. L’appel n’a pas besoin d’être encadré par des appels à PIXGpuBeginCapture et PIXGpuEndCapture.
Didacticiel sur les méthodes de GPU Capture
Ce didacticiel ajoute une capture d’image à l’application Simple Triangle.- Écrivez l’application Simple Triangle comme décrit dans l’exemple Simple Triangle sous Exemples du Microsoft Game Development Kit, si ce n’est pas déjà fait.
- Assurez-vous que l’application est prête pour le profilage avec PIX. Si ce n’est pas déjà fait, consultez le guide Configuration et prise en main.
- Ajoutez la ligne suivante à l’endroit où vous voulez capturer l’image suivante.
- Ouvrez la fenêtre XBOX Gaming Command Prompt, puis utilisez les outils distants pour copier le fichier de données dans un dossier approprié du PC de développement.
- Ouvrez le fichier
C:\GPUCaptures\TriangleCap.xpixdans PIX.
Fichiers de cache de GPU Capture (.pixcache)
Pour améliorer l’expérience utilisateur, PIX stocke des données temporaires liées aux GPU Captures sur la console et sur le PC utilisé pour exécuter PIX. Ces fichiers portent l’extension .pixcache. Cette fonctionnalité est contrôlée par le paramètre « Enable SSD cache ».Fichiers pixcache de la console
Sur la console, les fichiers pixcache sont stockés dans le répertoire XD:\DRIVES\DEVELOPMENT\PIX. Chaque capture est identifiée par un GUID (aussi affiché dans la vue « File Details » de PIX). Les fichiers de cache sont stockés dans un répertoire portant ce GUID comme nom. Tous les fichiers de cache de la console peuvent être répertoriés à l’aide de la commande xbdir :Fichiers pixcache du PC
Un dossier portant le nom de la capture est créé dans le dossier %TMP%\PIX. Le dossier de capture peut contenir jusqu’à 4 fichiers différents.- pagefile.pixcache
- Le moteur sauvegarde progressivement les données de capture sur le disque. Cela réduit considérablement la plage de travail du moteur au fil du temps.
- resources.pixcache
- La collecte des ressources peut être une opération longue. Si des ressources ont été collectées pendant la session, elles sont enregistrées sur le disque. Limitation actuelle : cette fonctionnalité n’est pas disponible lorsque ExecuteIndirect est utilisé.
- sqtt.pixcache
- Les données Timeline et Sqtt sont mises en cache après l’exécution de l’analyse. Elles sont renseignées à l’ouverture de la capture, sans qu’il soit nécessaire d’exécuter l’analyse. Les données ne sont pas demandées lors de la première exécution de l’analyse après l’ouverture, ce qui accélère considérablement l’opération.
- bottlenecks.pixcache
- Les goulots d’étranglement sont mis en cache après l’exécution de l’analyse. Cette fonctionnalité n’est disponible que pour les consoles XBOX One Series.
