Direct3D 12 XMemAlloc object types
When Direct3D 12 allocates memory it sets the dwAllocatorId member of the XALLOC_ATTRIBUTES structure to eXALLOCAllocatorId_D3D (128), and the dwObjectType member to a value that identifies the type of object allocated. When debugging memory allocations, either by hooking XMemAlloc or using tools such as PIX, it can be useful to know those object type values. The following tables list the dwObjectType values used by Direct3D 12 allocations.
GPU allocations
| dwObjectType |
Object type |
| 0 |
Unspecified |
| 1 |
CommandBuffer |
| 2 |
Writeback |
| 3 |
RingTemporary |
| 4 |
Resource |
| 5 |
DynamicResource |
| 6 |
StagingResource |
| 7 |
MultimediaResourceLocal |
| 8 |
MultimediaResourceLocalPinned |
| 9 |
MultimediaResourceLocalCpuAccess |
| 10 |
MultimediaResourceLocalCpuAccessPinned |
| 11 |
MultimediaStagingResource |
| 12 |
MultimediaStagingResourcePinned |
| 13 |
MultimediaResourceInvisible |
| 14 |
MultimediaResourceInvisiblePinned |
| 15 |
Shader |
| 16 |
PageDirectoryEntryBuffer |
| 17 |
PageTableEntryBuffer |
| 18 |
UnmapInfoBuffer |
| 19 |
Presentable |
| 20 |
CachedGarlicResource |
| 21 |
SystemHeap |
| 22 |
TiledResource |
| 23 |
Low4GBCachedCoherent |
| 24 |
Low4GBWriteCombined |
CPU allocations
| dwObjectType |
Object type |
| 64 |
Object_ID3D10Blob |
| 65 |
Object_IDXGIFactory2 |
| 66 |
Object_Adapter |
| 67 |
Object_Output |
| 68 |
Object_SwapChain |
| 69 |
Object_DxgiInfoQueue |
| 70 |
Object_Device |
| 71 |
Object_DeferredContext |
| 72 |
Object_ComputeContext |
| 73 |
Object_DmaContext |
| 74 |
Object_CommandList |
| 75 |
Object_Resource |
| 76 |
Object_RenderTargetView |
| 77 |
Object_DepthStencilView |
| 78 |
Object_ShaderResourceView |
| 79 |
Object_UnorderedAccessView |
| 80 |
Object_ShaderVs |
| 81 |
Object_ShaderHs |
| 82 |
Object_ShaderDs |
| 83 |
Object_ShaderGs |
| 84 |
Object_ShaderPs |
| 85 |
Object_ShaderCs |
| 86 |
Object_ID3D11ClassLinkage |
| 87 |
Object_InputLayout |
| 88 |
Object_BlendState |
| 89 |
Object_DepthStencilState |
| 90 |
Object_RasterizerState |
| 91 |
Object_Sampler |
| 92 |
Object_Query |
| 93 |
Object_CounterSet |
| 94 |
Object_CounterSample |
| 95 |
Object_D3dInfoQueue |
| 100 |
Object_Device11 |
| 101 |
Object_CommandQueue |
| 102 |
Object_GraphicsCommandList |
| 103 |
Object_ComputeCommandList |
| 104 |
Object_CommandAllocator |
| 105 |
Object_RootSignature |
| 106 |
Object_GraphicsPipelineState |
| 107 |
Object_DescriptorHeap |
| 108 |
Object_Resource11 |
| 109 |
Object_Fence |
| 110 |
Object_Heap12 |
| 111 |
Object_QueryHeap |
| 112 |
Object_ComputePipelineState |
| 113 |
Object_CommandSignature |
| 114 |
Object_DmaCommandList |
| 115 |
Object_CopyCommandList |
| 116 |
Object_VideoCommandList |
| 119 |
Scratch |
| 120 |
BlobBuffer |
| 121 |
ObjectPrivateDataList |
| 122 |
ObjectPrivateDataEntry |
| 123 |
SwapChainBufferList |
| 124 |
DdiSubresourceUpStaging |
| 125 |
CompressedLayouts |
| 126 |
TiledResourceLayout |
| 127 |
TileMappingData |
| 128 |
OutOfMemoryBuffer |
| 129 |
InfoQueue |
| 130 |
HeapChunk |
| 131 |
PrologEpilogWrapper |
| 132 |
TinyD3D_DmaDevice |
| 133 |
HlslLaunchManagerCompute |
| 134 |
ShaderUserDataManager |
| 135 |
MultisampleData |
| 136 |
GpuMemBatch |
| 137 |
ResourceAllocation |
| 138 |
TrackedMalloc |
| 139 |
RuntimeInterface |
| 140 |
ContextCallbackInterface |
| 141 |
ScratchGprManager |
| 142 |
VmHeap |
| 143 |
ShaderBlob |
| 144 |
ShaderData |
| 145 |
ShaderResourceLayout |
| 146 |
GenericNew |
| 147 |
NameTable |
| 148 |
PixCommandListEntry |
| 149 |
LowMemoryAllocator |
| 150 |
AppendixContainer |
| 151 |
AppendixContainerTransient |
| 152 |
ResourceBarrierBatch |
| 153 |
CommandBufferSection |
| 154 |
FenceTable |
| 155 |
ErrorFilterList |
| 156 |
MiniSegmentChunk |
| 157 |
Object_GraphicsPipelineState_TessCB |
| 158 |
Object_TextureAddressComputer |
| 159 |
Object_ResourceOM |
| 160 |
VideoDevice |
| 161 |
VideoCommandBufferInterface |
| 162 |
VideoDecoder |
See also
XMemAlloc
PIX Memory Captures