> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_AUTO_BREADCRUMB_NODE

> Represents Device Removed Extended Data (DRED) auto-breadcrumb data as a node in a linked list.

Represents Device Removed Extended Data (DRED) auto-breadcrumb data as a node in a linked list. Each **D3D12\_AUTO\_BREADCRUMB\_NODE** object is singly linked to the next via its `pNext` member; except for the last node in the list, which has its `pNext` set to `nullptr`.

The Direct3D 12 runtime creates one of these for each graphics command list, and tracks them in the command allocator associated with the list. When a command list is executed, the command queue information is set. After device removal is detected, the Direct3D 12 runtime links together the auto-breadcrumb nodes for any GPU work that is still outstanding.

## Syntax

```cpp theme={null}
typedef struct D3D12_AUTO_BREADCRUMB_NODE
{
    const char  pCommandListDebugNameA;
    const wchar_t  pCommandListDebugNameW;
    const char  pCommandQueueDebugNameA;
    const wchar_t  pCommandQueueDebugNameW;
    ID3D12GraphicsCommandList  pCommandList;
    ID3D12CommandQueue  pCommandQueue;
    UINT32 BreadcrumbCount;
    UINT32  pLastBreadcrumbValue;
    D3D12_AUTO_BREADCRUMB_OP  pCommandHistory;
    struct D3D12_AUTO_BREADCRUMB_NODE  pNext;
} D3D12_AUTO_BREADCRUMB_NODE
```

### Members

*pCommandListDebugNameA*\
Type: const char \*

A pointer to the ANSI debug name of the outstanding command list (if any).

*pCommandListDebugNameW*\
Type: const wchar\_t \*

A pointer to the wide debug name of the outstanding command list (if any).

*pCommandQueueDebugNameA*\
Type: const char \*

A pointer to the ANSI debug name of the outstanding command queue (if any).

*pCommandQueueDebugNameW*\
Type: const wchar\_t \*

A pointer to the wide debug name of the outstanding command queue (if any).

*pCommandList*\
Type: ID3D12GraphicsCommandList \*

A pointer to the [ID3D12GraphicsCommandList interface](/reference/graphics/d3d12_xs/interfaces/ID3D12GraphicsCommandList/id3d12graphicscommandlist_xs) representing the outstanding command list at the time of execution.

*pCommandQueue*\
Type: ID3D12CommandQueue \*

A pointer to the [ID3D12CommandQueue interface](/reference/graphics/d3d12_xs/interfaces/ID3D12CommandQueue/id3d12commandqueue_xs) representing the outstanding command queue.

*BreadcrumbCount*\
Type: UINT32

A **UINT32** containing the count of [D3D12\_AUTO\_BREADCRUMB\_OP](/reference/graphics/d3d12/enums/d3d12_auto_breadcrumb_op_public) values in the array pointed to by `pCommandHistory`.

*pLastBreadcrumbValue*\
Type: UINT32 \*

A pointer to a constant **UINT32** containing the index (within the array pointed to by `pCommandHistory`) of the last render/compute operation that was completed by the GPU while executing the associated command list.

*pCommandHistory*\
Type: D3D12\_AUTO\_BREADCRUMB\_OP \*

A pointer to a constant array of [D3D12\_AUTO\_BREADCRUMB\_OP](/reference/graphics/d3d12/enums/d3d12_auto_breadcrumb_op_public) values representing all of the render/compute operations recorded into the associated command list.

*pNext*\
Type: struct D3D12\_AUTO\_BREADCRUMB\_NODE \*

A pointer to a constant **D3D12\_AUTO\_BREADCRUMB\_NODE** representing the next auto-breadcrumb node in the list, or `nullptr` if this is the last node.

## Requirements

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

* [Core structures](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-structures)
* [Use DRED to diagnose GPU faults](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/use-dred)


## Related topics

- [D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT](/reference/graphics/d3d12/structs/d3d12_dred_auto_breadcrumbs_output_public.md)
- [D3D12_DEVICE_REMOVED_EXTENDED_DATA](/reference/graphics/d3d12/structs/d3d12_device_removed_extended_data_public.md)
- [D3D12_DEVICE_REMOVED_EXTENDED_DATA1](/reference/graphics/d3d12/structs/d3d12_device_removed_extended_data1_public.md)
- [D3D12_AUTO_BREADCRUMB_OP](/reference/graphics/d3d12/enums/d3d12_auto_breadcrumb_op_public.md)
- [D3D12_NODE_MASK](/reference/graphics/d3d12/structs/d3d12_node_mask_public.md)
