Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Grafikinformationen erfassen, um mit den Visual Studio Grafikdiagnosetools Renderingprobleme in den DirectX-basierten Apps zu bestimmen.
Sie können Grafikinformationen entweder manuell oder programmgesteuert erfassen.Führen Sie die Anwendung für die manuelle Erfassung von Visual Studio aus aus, und wählen Sie dann die Schaltfläche Frame erfassen aus.Verwenden Sie für die programmgesteuerte Erfassung im Quellcode der App die Erfassungs-API, die in Visual Studio enthalten ist, um festzulegen, wann Frames aufgezeichnet werden sollen.
Sie können auch verhindern, dass Grafikinformationen aus der App aufgezeichnet werden.
Grafikinformationen manuell aufzeichnen
Verwenden Sie die Schaltfläche Frame erfassen auf der Grafikdiagnose-Symbolleiste, um Frames von Grafikinformationen aus einer ausgeführten Direct3D-App manuell aufzuzeichnen.Verwenden Sie die Schaltfläche mehrmals, um mehrere Frames aufzuzeichnen.Bevor Sie Frames manuell aufzeichnen können, müssen Sie die App von Visual Studio aus starten und die Grafikdiagnose aktiviert haben.
Visual Studio verwendet die erfassten Informationen, um die aufgezeichneten Frames später neu zu erstellen. Sie können die Grafikdiagnosetools dann verwenden, um die Frames ausführlich zu überprüfen.
So starten Sie eine Anwendung bei aktivierter Grafikdiagnose
- Klicken Sie in der Menüleiste auf Debuggen, dann auf Grafik und Diagnose starten.(Tastatur: Drücken Sie ALT+F5)
Wenn die Grafikdiagnose in eine App eingebunden ist, können Sie Grafikinformationen von beliebig vielen Frames erfassen.Immer wenn Sie eine Aufzeichnung starten, werden die Direct3D-Ereignisse, die während des nachfolgenden Frames auftreten, zusammen mit den Direct3D-Objekten und Ressourcen aufgezeichnet, die sie unterstützen.Die Aufzeichnung beginnt sofort, wenn der aktuelle Frame dargestellt wird, und endet, wenn der Frame, den Sie aufzeichnen möchten, dargestellt wird.
So erfassen Sie einen Frame von Grafikinformationen
- Wählen Sie in der Grafikdiagnose-Symbolleiste die Schaltfläche Frame erfassen aus.
(Tastatur: Wenn die Anwendung angezeigt wird, Drucktaste drücken)
Wenn der erste Frame aufgezeichnet ist, erstellt Visual Studio ein Grafikprotokoll, in dem die Informationen gespeichert werden.Weitere aufgezeichnete Frames werden diesem Protokoll hinzugefügt.Wenn Sie das Grafikprotokolldokument (.vsglog) in Visual Studio schließen, während die App ausgeführt wird, können Sie keine Frames von Grafikinformationen mehr aufzeichnen, aber Sie können weiterhin mit dem Visual Studio-Debugger debuggen.Zum Erfassen weiterer Grafikinformationen halten Sie das Debuggen der App an, und starten Sie die App mit dem Befehl Diagnose starten erneut.
Grafikinformationen programmgesteuert aufzeichnen
Manchmal ist es unpraktisch oder sogar unmöglich, sich auf die manuelle Erfassung zum Aufzeichnen von Informationen über ein Renderingproblem zu verlassen, das Sie versuchen zu lösen.So treten bestimmte Arten von Problemen z. B. zu periodisch auf, um manuell reproduziert zu werden, die Programmbedingungen, die dazu führen, sind jedoch bekannt. Oder Sie müssen möglicherweise Grafikinformationen über ein System sammeln, das die manuelle Erfassung nicht unterstützt, da es Visual Studio nicht unterstützt. Dies ist z. B. bei Windows RT-Geräten der Fall.Für diese Szenarios enthält Visual Studio eine API ein, die Sie programmgesteuert aufrufen können, um Grafikinformationen in einem Protokoll zu erfassen.Nach dem Beenden der Programmausführung können Sie das Grafikprotokoll in Visual Studio öffnen, um die aufgezeichneten Probleme zu untersuchen.
Informationen darüber, wie die programmgesteuerte Erfassung in der App aktiviert wird und wie der Computer, auf dem sie ausgeführt wird, für die programmgesteuerte Erfassung konfiguriert wird, finden Sie unter Exemplarische Vorgehensweise: Programmgesteuertes Erfassen von Grafikinformationen.
Verhindern der Erfassung der Grafikinformationen
Bevor Sie die App veröffentlichen, können Sie die Grafikdiagnose und andere Profilerstellungstools deaktivieren, um zu verhindern, dass Benutzer ermitteln können, wie die App die Direct3D-API verwendet.Diese Informationen könnten unerlaubt verwendet werden.Weitere Informationen finden Sie unter Gewusst wie: Deaktivieren der Grafikdiagnose in der App.
Grafikprotokolldokumente
In den Grafikprotokolldokumenten werden die Grafikinformationen gespeichert, die während einer Grafikdiagnose-Erfassungssitzung erfasst werden.Eine Erfassungssitzung kann manuell oder programmgesteuert gestartet werden.Grafikprotokolle enthalten einen oder mehrere Frames, die von einer ausgeführten DirectX-Grafikanwendung aufgezeichnet wurden.Für jeden aufgezeichneten Frame wird eine Liste jedes Direct3D-Ereignisses aufgezeichnet, das während des Frames aufgetreten ist.Dies schließt die Unterstützung von Direct3D-Ereignissen, die zuvor aufgetreten sind (z. B. Erstellung eines Grafikgeräts), sowie die Unterstützung von Shadern, Modellen, Texturen und anderen Grafikressourcen ein.Da jedes Grafikprotokoll in sich abgeschlossen ist, können diese Frames jederzeit schrittweise und ohne externe Informationen oder Verweise neu erstellt werden.Sie können Grafikprotokolle freigeben, und Sie können Probleme auf einem anderen Computer überprüfen, als dem, der für die Erfassung der Daten oder die Entwicklung des Codes verwendet wurde.Außerdem können Sie alte Grafikprotokolle überprüfen, auch wenn die Modelle und die Texturen in der Entwicklung geändert wurden.Wenn Sie die Grafikdiagnose verwenden, um Grafikprobleme zu bestimmen, können Sie jeden Direct3D-API-Aufruf und den zugeordneten Zustand, einzelne Eckpunkte in den Puffern überprüfen und sogar sehen, wie einzelne Pixel durch Zeichnen-Aufrufe beeinflusst werden.
Hinweis |
|---|
Obwohl ein Grafikprotokoll die meisten relevanten Informationen intern erfasst, sind zusätzliche Informationen erforderlich, damit einige Grafikdiagnosefunktionen vollständig verwendet werden können.Um beispielsweise die Grafikaufruflistenfunktion vollständig nutzen zu können, müssen Sie über die Programmdatenbankdatei (.pdb) und den Quellcode der App verfügen, und um den HLSL-Shader-Quellcode zu debuggen, müssen Sie über den Shader-Quellcode verfügen (wenn der Shader mit dem Compiler des Shaders D3D11.1 kompiliert wurde und Debuginformationen aktiviert sind, wird der Shader-Quellcode während der Erfassung im Grafikprotokoll eingebettet). |
Hinweis |
|---|
Sie können Kopien von Netzen und Texturen aus einem Grafikprotokoll extrahieren, ändern und speichern, indem Sie die Grafiktools verwenden, die in Visual Studio enthalten sind.Allerdings wird der Inhalt des Grafikprotokolls nicht von diesen Änderungen betroffen.Weitere Informationen zu diesen Grafiktools finden Sie unter Arbeiten mit 3D-Objekten für Spiele und Apps. |
Siehe auch
Aufgaben
Gewusst wie: Deaktivieren der Grafikdiagnose in der App
Exemplarische Vorgehensweise: Manuelles Erfassen von Grafikinformationen
Exemplarische Vorgehensweise: Programmgesteuertes Erfassen von Grafikinformationen
Hinweis