Grafikobjekttabelle
Die Grafikobjekttabelle (die eines der Grafikdiagnose-Tools in Visual Studio ist) kann Ihnen helfen, Direct3D-Objekte zu verstehen, die einen bestimmten Frame Ihres Spiels oder Ihrer App unterstützen.
Dies ist Grafikobjekttabelle:
Hinweis
Ab Visual Studio 2013 Update 3 werden die Grafikdiagnose-Toolfenster in einer unabhängigen Kopie der Visual Studio-Shell gehostet.Diese benutzerdefinierte Shell, genannt Grafik-Analyse, beseitigt unnötige Menüs und Optionen, aber die Frame-Analyse und der Workflow sind gleich geblieben.Weitere Informationen über diese Änderung finden Sie unter Übersicht über die Grafikdiagnose.
Die Grafikobjekttabelle verstehen
Mit der Grafikobjekttabelle können Sie Direct3D-Objekte analysieren, die das Rendern eines bestimmten Frames unterstützen. Sie können ein Renderproblem anhand eines bestimmten Objekts untersuchen, indem Sie seine Eigenschaften und Daten überprüfen. (Wenn Sie zuvor andere Grafikdiagnose-Tools verwenden, können Sie die Liste der Objekte eingrenzen, die möglicherweise nicht das leisten, was Sie erwarten.) Wenn Sie das problemauslösende Objekt gefunden haben, können Sie eine typspezifische Visualisierung verwenden, um das Objekt zu untersuchen. So können Sie beispielsweise die Bildbearbeitung einsetzen, um Texturen anzusehen, oder die Puffer-Schnellansicht verwenden, um Pufferinhalte anzuzeigen.
Die Grafikobjekttabelle unterstützt das Kopieren und Einfügen, sodass Sie ein anderes Tool, wie etwa Microsoft Excel, zum Überprüfen des Inhalts verwenden können.
Format der Grafikobjekttabelle
Die Grafikobjekttabelle zeigt die Direct3D-Objekte und die Ressourcen an, die den Frame unterstützen, der mit dem ausgewählten Ereignis verknüpft ist, beispielsweise Zustandsobjekte, Puffer, Shader, Texturen und andere Ressourcen. Nicht in die Objekttabelle aufgenommen werden Objekte, die in einem vorherigen Frame erstellt wurden und während des aufgezeichneten Frames nicht verwendet werden. Objekte, die während des aufgezeichneten Frames durch vorherige Ereignisse zerstört wurden, werden in den folgenden Ereignissen weggelassen. Objekte, die nicht auf D3D10Device oder D3D11DeviceContext festgelegt wurden, werden in grauer Schrift angezeigt. Objekte werden in einem Tabellenformat angezeigt.
Spalte |
Beschreibung |
---|---|
Bezeichner |
Die Objekt-ID. |
Name |
Anwendungsspezifische Informationen, die für das Objekt mit der Direct3D-Funktion SetPrivateData festgelegt wurden (normalerweise zur Bereitstellung zusätzlicher Informationen über das Objekt). |
Typ |
Der Objekttyp. |
Aktiv |
Zeigt "*" für ein Objekt an, das während des aufgezeichneten Frames auf D3D10Device oder D3D11DeviceContext festgelegt wurde. Dies entspricht den Objekten, die in grauer Schrift angezeigt werden, stellt aber einen Spalteneintrag bereit, mit dem Sie die Objekttabelle sortieren können. |
Größe |
Die Größe des Objekts in Bytes. |
Format |
Das Format des Objekts. Beispielsweise das Format eines Texturobjekts oder das Shadermodell eines Shaderobjekts. |
Mips |
Die Anzahl von MIP-Ebenen eines Texturobjekts. Gilt nicht für andere Objekttypen. |
Breite |
Die Breite eines Texturobjekts. Gilt nicht für andere Objekttypen. |
Höhe |
Die Höhe eines Texturobjekts. Gilt nicht für andere Objekttypen. |
Depth |
Die Tiefe eines 3D-Texturobjekts. Wenn eine Textur nicht 3D ist, ist der Wert 0. Gilt nicht für andere Objekttypen. |
Grafikobjekt-Viewer
Um Informationen zu einem Objekt anzuzeigen, öffnen Sie es, indem Sie seinen Namen in der Grafikobjekttabelle auswählen. Details über das Objekt werden in verschiedenen Formaten angezeigt, je nach Typ des Objekts. Beispielsweise wird der Gerätezustand (D3D10-Gerät) als formatierte Liste angezeigt, und eine Textur mit dem Tool Bildbearbeitung, mit dem sie auch geändert und gespeichert werden kann.
Gerätekontextobjekt
Das Gerätekontextobjekt (D3D11-Gerätekontext oder D3D10-Gerät) ist besonders wichtig, da es die wichtigsten Zustandsinformationen enthält und auf andere Zustandsobjekte verweist, die momentan festgelegt sind. Gerätekontextdetails werden in einem neuen Dokumentfenster angezeigt, und jede Kategorie von Informationen wird dort auf einer eigenen Registerkarte angezeigt. Der Gerätekontext ändert sich, wenn ein neues Ereignis ausgewählt wird, um den aktuellen Gerätezustand wiederzugeben.
Pufferobjekt
Pufferobjektdetails (D3D11-Puffer oder D3D10-Puffer) werden in einem neuen Dokumentfenster angezeigt, das den Pufferinhalt in einer Tabelle darstellt und eine Schnittstelle bereitstellt, um die Art und Weise, wie Pufferinhalt angezeigt wird, zu ändern. Die Tabelle Pufferdaten unterstützt das Kopieren und Einfügen, sodass Sie ein anderes Tool, wie etwa Microsoft Excel, zum Überprüfen des Inhalts verwenden können. Der Inhalt des Puffers wird gemäß dem Wert des Kombinationsfelds Format interpretiert, das sich oberhalb der Tabelle Pufferdaten befindet. Im Feld können Sie ein zusammengesetztes Datenformat eingeben, das aus den Datentypen besteht, die in der folgenden Tabelle aufgelistet sind. Beispielsweise zeigt "float int" eine Liste von Strukturen an, die einen 32-Bit-Gleitkommawert enthalten, dem ein 32-Bit-Ganzzahlwert mit Vorzeichen folgt. Zusammengesetzte Datenformate, die Sie angegeben haben, werden dem Kombinationsfeld zur späteren Verwendung hinzugefügt.
Typ |
Beschreibung |
---|---|
float |
Ein 32-Bit-Gleitkommawert. |
float2 |
Ein Vektor, der zwei 32-Bit-Gleitkommawerte enthält. |
float3 |
Ein Vektor, der drei 32-Bit-Gleitkommawerte enthält. |
float4 |
Ein Vektor, der vier 32-Bit-Gleitkommawerte enthält. |
byte |
Ein 8-Bit-Ganzzahlwert mit Vorzeichen |
2byte |
Ein 16-Bit-Ganzzahlwert mit Vorzeichen. |
4byte |
Ein 32-Bit-Ganzzahlwert mit Vorzeichen. Identisch mit int. |
8byte |
Ein 64-Bit-Ganzzahlwert mit Vorzeichen. Identisch mit int64. |
xbyte |
Ein 8-Bit-Hexadezimalwert |
x2byte |
Ein 16-Bit-Hexadezimalwert |
x4byte |
Ein 32-Bit-Hexadezimalwert Identisch mit xint. |
x8byte |
Ein 64-Bit-Hexadezimalwert Identisch mit xint64. |
ubyte |
Ein 8-Bit-Ganzzahlwert ohne Vorzeichen. |
u2byte |
Ein 16-Bit-Ganzzahlwert ohne Vorzeichen. |
u4byte |
Ein 32-Bit-Ganzzahlwert ohne Vorzeichen. Identisch mit uint. |
u8byte |
Ein 64-Bit-Ganzzahlwert ohne Vorzeichen. Identisch mit uint64. |
half |
Ein 16-Bit-Gleitkommawert. |
half2 |
Ein Vektor, der zwei 16-Bit-Gleitkommawerte enthält. |
half3 |
Ein Vektor, der drei 16-Bit-Gleitkommawerte enthält. |
half4 |
Ein Vektor, der vier 16-Bit-Gleitkommawerte enthält. |
double |
Ein 64-Bit-Gleitkommawert. |
int |
Ein 32-Bit-Ganzzahlwert mit Vorzeichen. Identisch mit 4byte. |
int64 |
Ein 64-Bit-Ganzzahlwert mit Vorzeichen. Identisch mit 8byte. |
xint |
Ein 32-Bit-Hexadezimalwert Identisch mit x4byte. |
xint64 |
Ein 64-Bit-Hexadezimalwert Identisch mit x8byte. |
uint |
Ein 32-Bit-Ganzzahlwert ohne Vorzeichen. Identisch mit u4byte. |
uint64 |
Ein 64-Bit-Ganzzahlwert ohne Vorzeichen. Identisch mit u8byte. |
bool |
Ein boolescher Wert (true oder false) Jeder boolesche Wert wird durch einen 32-Bit-Wert dargestellt. |
Siehe auch
Aufgaben
Exemplarische Vorgehensweise: Fehlende Objekte durch Gerätestatus