Graphics Object Table

The Graphics Object Table, which is one of the Graphics Diagnostics tools in Visual Studio, can help you understand the Direct3D objects that support a particular frame of your game or app.

This is the Graphics Object Table:

Direct3D objects that have been created by an app.

Understanding the Graphics Object Table

By using the Graphics Object Table, you can analyze the Direct3D objects that support the rendering of a particular frame. You can pinpoint a rendering problem to a specific object by examining its properties and data. (By using other Graphics Diagnostics tools earlier in your diagnosis, you can narrow the list of objects that might not be what you expect.) When you have found the offending object, you can use a visualization that's specific to its type to examine it—for example, you can use the Image Editor to view textures, or the Buffer Visualizer to view buffer contents.

Graphics Object Table format

The Graphics Object Table displays the Direct3D objects and resources that support the frame that's associated with the selected event—for example, state objects, buffers, shaders, textures, and other resources. Objects that were created in a previous frame but are not used during the captured frame are omitted from the object table. Objects that have been destroyed by previous events during the captured frame are omitted in subsequent events. Objects that are not set on the D3D10Device or D3D11DeviceContext are displayed as gray text. Objects are displayed in a table format.

Column

Description

Identifier

The object ID.

Name

Application-specific information that was set on the object by using the Direct3D function SetPrivateData—typically to provide additional identifying information about an object.

Type

The object type.

Active

Displays "*" for an object that was set on the D3D10Device or D3D11DeviceContext during the captured frame.

This corresponds to objects which are displayed as grey text, but provides a column entry that you can use to help sort the object table.

Size

The size of the object in bytes.

Format

The format of the object. For example, the format of a texture object, or the shader model of a shader object.

Mips

The number of MIP levels that a texture object has. Does not apply to other object types.

Width

The width of a texture object. Does not apply to other object types.

Height

The height of a texture object. Does not apply to other object types.

Depth

The depth of a 3-D texture object. If a texture is not 3-D, then the value is 0. Does not apply to other object types.

Created by Frame

The frame in which the object was created.

Graphics object viewers

To view details about an object, open it by choosing its name in the Graphics Object Table. Details about the object are displayed in different formats, depending on the type of the object. For example, device state (D3D10 Device) is displayed as a formatted list, and a texture is displayed by the Image Editor tool and can be modified and saved.

Device context object

The device context (D3D11 Device Context or D3D10 Device) object is particularly important because it holds the most important state information, and it links to other state objects that are currently set. The device context changes when a new event is selected to reflect the current device state. State that has been modified by the selected event is displayed as red text.

Buffer object

Buffer object details (D3D11 Buffer or D3D10 Buffer) are displayed as formatted text. The content of the buffer is interpreted according to the value of the Buffer format combo box, which is located above the object table. In the box, you can enter a composite data format that's made up of the data types that are listed in the following table. For example, "float int" displays a list of structures that contain a 32-bit floating-point value followed by a 32-bit signed integer value. Composite data formats that you have specified are added to the combo box for later use.

Type

Description

float

A 32-bit floating-point value.

float2

A vector that contains two 32-bit floating-point values.

float3

A vector that contains three 32-bit floating-point values.

float4

A vector that contains four 32-bit floating-point values.

byte

An 8-bit signed integer value.

2byte

A 16-bit signed integer value.

4byte

A 32-bit signed integer value. Same as int.

8byte

A 64-bit signed integer value. Same as int64.

xbyte

An 8-bit hexadecimal value.

x2byte

A 16-bit hexadecimal value.

x4byte

A 32-bit hexadecimal value. Same as xint.

x8byte

A 64-bit hexadecimal value. Same as xint64.

ubyte

An 8-bit unsigned integer value.

u2byte

A 16-bit unsigned integer value.

u4byte

A 32-bit unsigned integer value. Same as uint.

u8byte

A 64-bit unsigned integer value. Same as uint64.

half

A 16-bit floating-point value.

half2

A vector that contains two 16-bit floating-point values.

half3

A vector that contains three 16-bit floating-point values.

half4

A vector that contains four 16-bit floating-point values.

double

A 64-bit floating-point value.

int

A 32-bit signed integer value. Same as 4byte.

int64

A 64-bit signed integer value. Same as 8byte.

xint

A 32-bit hexadecimal value. Same as x4byte.

xint64

A 64-bit hexadecimal value. Same as x8byte.

uint

A 32-bit unsigned integer value. Same as u4byte.

uint64

A 64-bit unsigned integer value. Same as u8byte.

bool

A Boolean (true or false) value. Each Boolean value is represented by a 32-bit value.

See Also

Tasks

Walkthrough: Missing Objects Due to Device State