Debuggen von DirectX-Grafiken
Visual Studio kann Sie beim Debugging von Grafikfehlern in DirectX-Spielen oder -Apps unterstützen. Mithilfe der Grafikdiagnosetools können Sie bestimmte Renderingfehler identifizieren und Faktoren genauer untersuchen, die möglicherweise zu diesen Fehlern beigetragen haben.
In diesem Abschnitt
Übersicht über die Grafikdiagnose
Bietet eine Einführung in den Workflow und die Tools der Grafikdiagnose.Erfassen von Grafikinformationen
Um die Grafikdiagnose zur Untersuchung eines Renderingproblems zu verwenden, zeichnen Sie zuerst Informationen darüber auf, wie die App DirectX verwendet. In der Aufzeichnungssitzung, während der Ihre App normal ausgeführt wird, können Sie die gewünschten Frames aufzeichnen, d. h. auswählen. Die Aufzeichnungen enthalten ausführliche Informationen darüber, wie die Frames gerendert werden. Sie können die aufgezeichneten Informationen als Grafikprotokolldokument speichern, um sie später zu untersuchen oder für andere Teammitglieder freizugeben.Grafikprotokolldokument
Um die Überprüfung eines aufgezeichneten Grafikprotokolls zu starten, wählen Sie über das Dokumentfenster "Grafikprotokolle"einen aufgezeichneten Frame – oder sogar ein bestimmtes Pixel. Sie können dann die Ereignisse (d. h. die DirectX-API-Aufrufe), die eine Auswirkung auf den Frame oder das Pixel haben, genauer untersuchen.Grafikframe-Analyse
Nach der Auswahl eines Frames verwenden Sie die Grafikframe-Analyse, um Ihre Renderingleistung zu untersuchen und anzupassen.Grafikereignisliste
Nachdem Sie einen Frame ausgewählt haben, untersuchen Sie mithilfe der Grafikereignisliste dessen Ereignisse, und überprüfen Sie, ob diese mit dem Renderingproblem zusammenhängen.Grafikpipelinestufen
Untersuchen Sie im Fenster Grafikpipelinestufen, wie das aktuell ausgewählte Ereignis in den einzelnen Stufen der Grafikpipeline verarbeitet wird, damit Sie feststellen können, wo das Renderingproblem zuerst auftritt. Die Untersuchung der Pipelinephasen ist besonders hilfreich, wenn ein Objekt aufgrund einer falschen Transformation nicht angezeigt wird, oder wenn eine der Stufen eine Ausgabe erzeugt, die nicht mit der in der nächsten Phase erwarteten Ausgabe übereinstimmt.Aufrufliste des Grafikereignisses
Mithilfe der Aufrufliste des Grafikereignisses können Sie die Aufrufliste des aktuell ausgewählten Ereignisses überprüfen, und so zum App-Code navigieren, der mit dem Renderingproblem zusammenhängt.Grafikpixelverlauf
Im Fenster Grafikpixelverlauf können Sie analysieren, wie sich die Ereignisse auf das derzeit ausgewählte Pixel auswirken, und Sie können das Ereignis oder die Kombination der Ereignisse identifizieren, die bestimmte Arten von Renderingproblemen verursachen. Der Pixelverlauf ist besonders hilfreich, wenn ein Objekt falsch gerendert wird, da entweder die Ausgabe des Pixel-Shaders falsch ist oder falsch mit dem Framepuffer kombiniert wurde. Der Pixelverlauf ist ebenfalls aufschlussreich, wenn ein Objekt gar nicht angezeigt wird, da seine Pixel verworfen wurden, bevor sie den Framepuffer erreicht haben.Grafikobjekttabelle
Mithilfe der Grafikobjekttabelle können Sie die Eigenschaften und Inhalte bestimmter Direct3D-Objekte und -ressourcen untersuchen, die für das aktuell ausgewählte Ereignis gültig sind. Die Objekttabelle unterstützt Sie bei der Ermittlung des Grafikgerätekontexts, der während eines Ereignisses aktiv ist, und bei der Untersuchung von Inhalten aus Grafikressourcen, wie Konstantenpuffer, Vertexpuffer und Texturen.HLSL-Debugger
Verwenden Sie den HLSL-Debugger, um zu untersuchen, wie sich der Shader-Code für die aktuell ausgewählte Ereignis- und Grafikpipelinestufe verhält. Mit dem HLSL-Debugger können Sie den Code schrittweise ausführen, den Inhalt von Variablen untersuchen und andere typische Debugaufgaben durchführen. Mit dem HLSL-Debugger können Sie auch den Compute-Shader-Code unabhängig davon untersuchen, ob die Ergebnisse weiter durch die Grafikpipeline verarbeitet oder nur von der Anwendung eingelesen werden.Befehlszeilen-Erfassungs-Tool
Verwenden Sie das Befehlszeilen-Erfassungstool, umGrafikinformationen schnell aufzuzeichnen und ohne Verwendung von Visual Studio oder programmgesteuerter Erfassung wiederzugeben. Insbesondere können Sie das Befehlszeilen-Erfassungstool für die Automatisierung oder in einer Testumgebung verwenden.Grafikdiagnosebeispiele
Hier finden Sie einige Beispiele, die zeigen, wie die Grafikdiagnosetools gemeinsam zur Diagnose unterschiedlicher Renderingprobleme verwendet werden.
Verwandte Abschnitte
Titel |
Beschreibung |
---|---|
Stellt die Debuggingfunktionen in Visual Studio vor. |
|
Enthält Artikel, in denen die DirectX-Grafiktechnologien erläutert werden. |