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.
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:
.png)
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.
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, der Ihnen helfen kann, die Objekttabelle zu sortieren. |
Größe |
Die Größe des Objekts in Bytes. |
Format |
Das Format des Objekts.Um 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. |
Vom Frame erstellt |
Der Frame, in dem das Objekt erstellt wurde. |
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.Der Gerätekontext ändert sich, wenn ein neues Ereignis ausgewählt wird, um den aktuellen Gerätezustand wiederzugeben.Ein Zustand, der durch das ausgewählte Ereignis geändert wurde, wird in roter Schrift angezeigt.
Pufferobjekt
Pufferobjektdetails (D3D11-Puffer oder D3D10-Puffer) werden als formatierter Text angezeigt.Der Inhalt des Puffers wird gemäß dem Wert des Kombinationsfelds Pufferformat interpretiert, das über der Objektetabelle liegt.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-HexadezimalwertIdentisch mit xint. |
x8byte |
Ein 64-Bit-HexadezimalwertIdentisch mit xint64. |
ubyte |
Ein Wert einer 8-Bit-Ganzzahl ohne Vorzeichen. |
u2byte |
Ein Wert einer 16-Bit-Ganzzahl ohne Vorzeichen. |
u4byte |
Ein Wert einer 32-Bit-Ganzzahl ohne Vorzeichen.Identisch mit uint. |
u8byte |
Ein Wert einer 64-Bit-Ganzzahl 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-HexadezimalwertIdentisch mit x4byte. |
xint64 |
Ein 64-Bit-HexadezimalwertIdentisch mit x8byte. |
uint |
Ein Wert einer 32-Bit-Ganzzahl ohne Vorzeichen.Identisch mit u4byte. |
uint64 |
Ein Wert einer 64-Bit-Ganzzahl 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