Core interfaces

The following interfaces are declared in d3d12.h.

In this section

Topic Description
ID3D12CommandAllocator Represents the allocations of storage for graphics processing unit (GPU) commands.
ID3D12CommandList An interface from which ID3D12GraphicsCommandList inherits from. It represents an ordered set of commands that the GPU executes, while allowing for extension to support other command lists than just those for graphics (such as compute and copy).
ID3D12CommandQueue Provides methods for submitting command lists, synchronizing command list execution, instrumenting the command queue, and updating resource tile mappings.
ID3D12CommandSignature A command signature object enables apps to specify indirect drawing, including the buffer format, command type and resource bindings to be used.
ID3D12DescriptorHeap A descriptor heap is a collection of contiguous allocations of descriptors, one allocation for every descriptor. Descriptor heaps contain many object types that are not part of a Pipeline State Object (PSO), such as Shader Resource Views (SRVs), Unordered Access Views (UAVs), Constant Buffer Views (CBVs), and Samplers.
ID3D12Device Represents a virtual adapter; it is used to create command allocators, command lists, command queues, fences, resources, pipeline state objects, heaps, root signatures, samplers, and many resource views.
ID3D12Device1 Represents a virtual adapter, and expands on the range of methods provided by ID3D12Device.
ID3D12Device2 Represents a virtual adapter. This interface extends ID3D12Device1 to create pipeline state objects from pipeline state stream descriptions.
ID3D12Device3 Represents a virtual adapter. This interface extends ID3D12Device2 to support the creation of special-purpose diagnostic heaps in system memory that persist even in the event of a GPU-fault or device-removed scenario.
ID3D12Device4 Represents a virtual adapter. This interface extends ID3D12Device3.
ID3D12Device5 Represents a virtual adapter. This interface extends ID3D12Device4.
ID3D12Device6 Represents a virtual adapter. This interface extends ID3D12Device5.
ID3D12Device7 Represents a virtual adapter. This interface extends ID3D12Device6.
ID3D12Device8 Represents a virtual adapter. This interface extends ID3D12Device7.
ID3D12Device9 Represents a virtual adapter. This interface extends ID3D12Device8 to add methods to manage shader caches.
ID3D12Device10 Represents a virtual adapter.
ID3D12DeviceChild An interface from which other core interfaces inherit from, including ID3D12PipelineLibrary, ID3D12CommandList, ID3D12Pageable, and ID3D12RootSignature. It provides a method to get back to the device object it was created against.
ID3D12DeviceRemovedExtendedData Provides runtime access to Device Removed Extended Data (DRED) data.
ID3D12DeviceRemovedExtendedDataSettings This interface controls Device Removed Extended Data (DRED) settings.
ID3D12Fence Represents a fence, an object used for synchronization of the CPU and one or more GPUs.
ID3D12Fence1 Represents a fence. This interface extends ID3D12Fence, and supports the retrieval of the flags used to create the original fence.
ID3D12GraphicsCommandList Encapsulates a list of graphics commands for rendering. Includes APIs for instrumenting the command list execution, and for setting and clearing the pipeline state.
ID3D12GraphicsCommandList1 Encapsulates a list of graphics commands for rendering, extending the inteface to support programmable sample positions, atomic copies for implementing late-latch techniques, and optional depth-bounds testing.
ID3D12GraphicsCommandList2 Encapsulates a list of graphics commands for rendering, extending the interface to support writing immediate values directly to a buffer.
ID3D12GraphicsCommandList3 Encapsulates a list of graphics commands for rendering.
ID3D12GraphicsCommandList4 Encapsulates a list of graphics commands for rendering, extending the interface to support ray tracing and render passes.
ID3D12GraphicsCommandList7 TBD
ID3D12Heap A heap is an abstraction of contiguous memory allocation, used to manage physical memory. This heap can be used with ID3D12Resource objects to support placed resources or reserved resources.
ID3D12LifetimeOwner Represents an application-defined callback used for being notified of lifetime changes of an object.
ID3D12LifetimeTracker Represents facilities for controlling the lifetime a lifetime-tracked object.
ID3D12MetaCommand Represents a meta command. A meta command is a Direct3D 12 object representing an algorithm that is accelerated by independent hardware vendors (IHVs). It's an opaque reference to a command generator that is implemented by the driver.
ID3D12Object An interface from which ID3D12Device and ID3D12DeviceChild inherit from. It provides methods to associate private data and annotate object names.
ID3D12Pageable An interface from which many other core interfaces inherit from. It indicates that the object type encapsulates some amount of GPU-accessible memory; but does not strongly indicate whether the application can manipulate the object's residency.
ID3D12PipelineLibrary Manages a pipeline library, in particular loading and retrieving individual PSOs.
ID3D12PipelineLibrary1 Manages a pipeline library. This interface extends ID3D12PipelineLibrary to load PSOs from a pipeline state stream description.
ID3D12PipelineState Represents the state of all currently set shaders as well as certain fixed function state objects.
ID3D12QueryHeap Manages a query heap. A query heap holds an array of queries, referenced by indexes.
ID3D12Resource Encapsulates a generalized ability of the CPU and GPU to read and write to physical memory, or heaps. It contains abstractions for organizing and manipulating simple arrays of data as well as multidimensional data optimized for shader sampling.
ID3D12RootSignature The root signature defines what resources are bound to the graphics pipeline. A root signature is configured by the app and links command lists to the resources the shaders require. Currently, there is one graphics and one compute root signature per app.
ID3D12RootSignatureDeserializer Contains a method to return the deserialized D3D12-ROOT-SIGNATURE-DESC data structure, of a serialized root signature version 1.0.
ID3D12SDKConfiguration Provides SDK configuration methods.
ID3D12ShaderCacheSession Represents a shader cache session.
ID3D12StateObject Represents a variable amount of configuration state, including shaders, that an application manages as a single unit and which is given to a driver atomically to process, such as compile or optimize.
ID3D12StateObjectProperties Provides methods for getting and setting the properties of an ID3D12StateObject.
ID3D12Tools This interface is used to configure the runtime for tools such as PIX. Its not intended or supported for any other scenario.
ID3D12VersionedRootSignatureDeserializer Contains methods to return the deserialized D3D12-ROOT-SIGNATURE-DESC1 data structure, of any version of a serialized root signature.
ID3D12VirtualizationGuestDevice TBD