Freigeben über


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:

Direct3D-Objekte, die von einer App erstellt wurden

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

Weitere Ressourcen

Debuggen von DirectX-Grafiken