Core structures

The following structures are declared in d3d12.h.

In this section

Topic and description
D3D12_AUTO_BREADCRUMB_NODE. Represents Device Removed Extended Data (DRED) auto-breadcrumb data as a node in a linked list.
D3D12_BARRIER_GROUP. Describes a group of barriers of a given type.
D3D12_BARRIER_SUBRESOURCE_RANGE. Allows you to transition logically-adjacent ranges of subresources.
D3D12_BLEND_DESC. Describes the blend state.
D3D12_BOX. Describes a 3D box.
D3D12_BUFFER_BARRIER. Describes a buffer memory access barrier. Used by buffer barriers to indicate when resource memory must be made visible for a specific access type.
D3D12_BUFFER_RTV. Describes the elements in a buffer resource to use in a render-target view.
D3D12_BUFFER_SRV. Describes the elements in a buffer resource to use in a shader-resource view.
D3D12_BUFFER_UAV. Describes the elements in a buffer to use in a unordered-access view.
D3D12_CACHED_PIPELINE_STATE. Stores a pipeline state.
D3D12_CLEAR_VALUE. Describes a value used to optimize clear operations for a particular resource.
D3D12_COMMAND_QUEUE_DESC. Describes a command queue.
D3D12_COMMAND_SIGNATURE_DESC. Describes the arguments (parameters) of a command signature.
D3D12_COMPUTE_PIPELINE_STATE_DESC. Describes a compute pipeline state object.
D3D12_CONSTANT_BUFFER_VIEW_DESC. Describes a constant buffer to view.
D3D12_CPU_DESCRIPTOR_HANDLE. Describes a CPU descriptor handle.
D3D12_DEPTH_STENCIL_DESC. Describes depth-stencil state.
D3D12_DEPTH_STENCIL_DESC1. Describes depth-stencil state.
D3D12_DEPTH_STENCIL_VALUE. Specifies a depth and stencil value.
D3D12_DEPTH_STENCIL_VIEW_DESC. Describes the subresources of a texture that are accessible from a depth-stencil view.
D3D12_DEPTH_STENCILOP_DESC. Describes stencil operations that can be performed based on the results of stencil test.
D3D12_DESCRIPTOR_HEAP_DESC. Describes the descriptor heap.
D3D12_DESCRIPTOR_RANGE. Describes a descriptor range.
D3D12_DESCRIPTOR_RANGE1. Describes a descriptor range, with flags to determine their volatility.
D3D12_DEVICE_REMOVED_EXTENDED_DATA. Represents Device Removed Extended Data (DRED) version 1.0 data.
D3D12_DEVICE_REMOVED_EXTENDED_DATA1. Represents Device Removed Extended Data (DRED) version 1.1 device removal data, so that debuggers and debugger extensions can access DRED data.
D3D12_DISCARD_REGION. Describes details for the discard-resource operation.
D3D12_DISPATCH_ARGUMENTS. Describes dispatch parameters, for use by the compute shader.
D3D12_DRAW_ARGUMENTS. Describes parameters for drawing instances.
D3D12_DRAW_INDEXED_ARGUMENTS. Describes parameters for drawing indexed instances.
D3D12_DRED_ALLOCATION_NODE. Describes, as a node in a linked list, data about an allocation tracked by Device Removed Extended Data (DRED).
D3D12_DRED_AUTO_BREADCRUMBS_OUTPUT. Contains a pointer to the head of a linked list of D3D12_AUTO_BREADCRUMB_NODE objects. The list represents the auto-breadcrumb state prior to device removal.
D3D12_DRED_PAGE_FAULT_OUTPUT. Describes allocation data related to a GPU page fault on a given virtual address (VA).
D3D12_FEATURE_DATA_ARCHITECTURE. Provide detail about the adapter architecture, helping applications better optimize for certain adapter properties.
D3D12_FEATURE_DATA_ARCHITECTURE1. Provide detail about the adapter architecture, helping applications better optimize for certain adapter properties.
D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY. Details the adapter's support for prioritization of different command queue types.
D3D12_FEATURE_DATA_CROSS_NODE. Indicates the level of support for the sharing of resources between different adapters.
D3D12_FEATURE_DATA_D3D12_OPTIONS. Describes Direct3D 12 feature options in the current graphics driver.
D3D12_FEATURE_DATA_D3D12_OPTIONS1. Describes the level of support for HLSL 6.0 wave operations.
D3D12_FEATURE_DATA_D3D12_OPTIONS2. Details the adapter's support for certain optional features of Direct3D 12.
D3D12_FEATURE_DATA_D3D12_OPTIONS3. Used to indicate the level of support that the adapter provides for optional features of Direct3D 12.
D3D12_FEATURE_DATA_D3D12_OPTIONS4. Indicates the level of support for 64KB-aligned MSAA textures, cross-API sharing, and native 16-bit shader operations.
D3D12_FEATURE_DATA_D3D12_OPTIONS5. Indicates the level of support that the adapter provides for render passes, ray tracing, and shader-resource view tier 3 tiled resources.
D3D12_FEATURE_DATA_D3D12_OPTIONS6. Indicates the level of support that the adapter provides for variable-rate shading (VRS), and indicates whether or not background processing is supported.
D3D12_FEATURE_DATA_D3D12_OPTIONS7. Indicates the level of support that the adapter provides for mesh and amplification shaders, and for sampler feedback.
D3D12_FEATURE_DATA_D3D12_OPTIONS8. Indicates whether or not unaligned block-compressed textures are supported.
D3D12_FEATURE_DATA_D3D12_OPTIONS9. Indicates whether or not support exists for mesh shaders, values of SV_RenderTargetArrayIndex that are 8 or greater, typed resource 64-bit integer atomics, derivative and derivative-dependent texture sample operations, and the level of support for WaveMMA (wave_matrix) operations.
D3D12_FEATURE_DATA_D3D12_OPTIONS10. Indicates whether or not the SUM combiner can be used, and whether or not SV_ShadingRate can be set from a mesh shader.
D3D12_FEATURE_DATA_D3D12_OPTIONS11. Indicates whether or not 64-bit integer atomics on resources in descriptor heaps are supported.
D3D12_FEATURE_DATA_D3D12_OPTIONS12. Indicates whether or not Enhanced Barriers are supported.
D3D12_FEATURE_DATA_D3D12_OPTIONS13. TBD
D3D12_FEATURE_DATA_EXISTING_HEAPS. Used to determinine whether the adapter supports creating heaps from existing system memory. Such heaps are not intended for general use, but are exceptionally useful for diagnostic purposes because they are guaranteed to persist even after the adapter faults or experiences a device-removal event.
D3D12_FEATURE_DATA_FEATURE_LEVELS. Describes info about the feature levels supported by the current graphics driver.
D3D12_FEATURE_DATA_FORMAT_INFO. Describes the DXGI data format.
D3D12_FEATURE_DATA_FORMAT_SUPPORT. Describes which resources are supported by the current graphics driver for a given format.
D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT. Details the adapter's GPU virtual address space limitations, including maximum address bits per resource and per process.
D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS. Describes the image quality levels for a given format and sample count.
D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_SUPPORT. Indicates the level of support for protected resource sessions.
D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPE_COUNT. Indicates a count of protected resource session types.
D3D12_FEATURE_DATA_PROTECTED_RESOURCE_SESSION_TYPES. Indicates a list of protected resource session types.
D3D12_FEATURE_DATA_QUERY_META_COMMAND. Indicates the level of support that the adapter provides for metacommands.
D3D12_FEATURE_DATA_ROOT_SIGNATURE. Pass this structure to CheckFeatureSupport to check for root signature version support.
D3D12_FEATURE_DATA_SERIALIZATION. Indicates the level of support for heap serialization.
D3D12_FEATURE_DATA_SHADER_CACHE. Describes the level of shader caching supported in the current graphics driver.
D3D12_FEATURE_DATA_SHADER_MODEL. Contains the supported shader model.
D3D12_GLOBAL_BARRIER. Describes a resource memory access barrier. Used by global, texture, and buffer barriers to indicate when resource memory must be made visible for a specific access type.
D3D12_GPU_DESCRIPTOR_HANDLE. Describes a GPU descriptor handle.
D3D12_GRAPHICS_PIPELINE_STATE_DESC. Describes a graphics pipeline state object.
D3D12_HEAP_DESC. Describes a heap.
D3D12_HEAP_PROPERTIES. Describes heap properties.
D3D12_INDEX_BUFFER_VIEW. Describes the index buffer to view.
D3D12_INDIRECT_ARGUMENT_DESC. Describes an indirect argument (an indirect parameter), for use with a command signature.
D3D12_INPUT_ELEMENT_DESC. Describes a single element for the input-assembler stage of the graphics pipeline.
D3D12_INPUT_LAYOUT_DESC. Describes the input-buffer data for the input-assembler stage.
D3D12_MEMCPY_DEST. Describes the destination of a memory copy operation.
D3D12_META_COMMAND_DESC. Describes a meta command.
D3D12_META_COMMAND_PARAMETER_DESC. Describes a parameter to a meta command.
D3D12_PACKED_MIP_INFO. Describes the tile structure of a tiled resource with mipmaps.
D3D12_PIPELINE_STATE_STREAM_DESC. Describes a pipeline state stream.
D3D12_PLACED_SUBRESOURCE_FOOTPRINT. Describes the footprint of a placed subresource, including the offset and the D3D12_SUBRESOURCE_FOOTPRINT.
D3D12_PROTECTED_RESOURCE_SESSION_DESC. Describes flags for a protected resource session, per adapter.
D3D12_QUERY_DATA_PIPELINE_STATISTICS. Query information about graphics-pipeline activity in between calls to BeginQuery and EndQuery.
D3D12_QUERY_DATA_SO_STATISTICS. Describes query data for stream output.
D3D12_QUERY_HEAP_DESC. Describes the purpose of a query heap. A query heap contains an array of individual queries.
D3D12_RANGE. Describes a memory range.
D3D12_RANGE_UINT64. Describes a memory range in a 64-bit address space.
D3D12_RASTERIZER_DESC. Describes rasterizer state.
D3D12_RAYTRACING_AABB. Represents an axis-aligned bounding box (AABB) used as raytracing geometry.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_COMPACTED_SIZE_DESC. Describes the space requirement for acceleration structure after compaction.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_CURRENT_SIZE_DESC. Describes the space currently used by an acceleration structure.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC. Description of the post-build information to generate from an acceleration structure. Use this structure in calls to EmitRaytracingAccelerationStructurePostbuildInfo and BuildRaytracingAccelerationStructure.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_SERIALIZATION_DESC. Describes the size and layout of the serialized acceleration structure and header
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_TOOLS_VISUALIZATION_DESC. Describes the space requirement for decoding an acceleration structure into a form that can be visualized by tools.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO. Represents prebuild information about a raytracing acceleration structure. Get an instance of this stucture by calling GetRaytracingAccelerationStructurePrebuildInfo.
D3D12_RAYTRACING_ACCELERATION_STRUCTURE_SRV. A shader resource view (SRV) structure for storing a raytracing acceleration structure.
D3D12_RAYTRACING_GEOMETRY_AABBS_DESC. Describes a set of Axis-aligned bounding boxes that are used in the D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS structure to provide input data to a raytracing acceleration structure build operation.
D3D12_RAYTRACING_GEOMETRY_DESC. Describes a set of geometry that is used in the D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS structure to provide input data to a raytracing acceleration structure build operation.
D3D12_RAYTRACING_GEOMETRY_TRIANGLES_DESC. Describes a set of triangles used as raytracing geometry. The geometry pointed to by this struct are always in triangle list form, indexed or non-indexed. Triangle strips are not supported.
D3D12_RAYTRACING_INSTANCE_DESC. Describes an instance of a raytracing acceleration structure used in GPU memory during the acceleration structure build process.
D3D12_RAYTRACING_PIPELINE_CONFIG. A state subobject that represents a raytracing pipeline configuration.
D3D12_RAYTRACING_PIPELINE_CONFIG1. A state subobject that represents a raytracing pipeline configuration, with flags.
D3D12_RAYTRACING_SHADER_CONFIG. A state subobject that represents a shader configuration.
D3D12_RECT. D3D12_RECT is declared as a RECT.
D3D12_RENDER_PASS_BEGINNING_ACCESS. Describes the access to resource(s) that is requested by an application at the transition into a render pass.
D3D12_RENDER_PASS_BEGINNING_ACCESS_CLEAR_PARAMETERS. Describes the clear value to which resource(s) should be cleared at the beginning of a render pass.
D3D12_RENDER_PASS_DEPTH_STENCIL_DESC. Describes a binding (fixed for the duration of the render pass) to a depth stencil view (DSV), as well as its beginning and ending access characteristics.
D3D12_RENDER_PASS_ENDING_ACCESS. Describes the access to resource(s) that is requested by an application at the transition out of a render pass.
D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS. Describes a resource to resolve to at the conclusion of a render pass.
D3D12_RENDER_PASS_ENDING_ACCESS_RESOLVE_SUBRESOURCE_PARAMETERS. Describes the subresources involved in resolving at the conclusion of a render pass.
D3D12_RENDER_PASS_RENDER_TARGET_DESC. Describes bindings (fixed for the duration of the render pass) to one or more render target views (RTVs), as well as their beginning and ending access characteristics.
D3D12_RENDER_TARGET_BLEND_DESC. Describes the blend state for a render target.
D3D12_RENDER_TARGET_VIEW_DESC. Describes the subresources from a resource that are accessible by using a render-target view.
D3D12_RESOURCE_ALIASING_BARRIER. Describes the transition between usages of two different resources that have mappings into the same heap.
D3D12_RESOURCE_ALLOCATION_INFO. Describes parameters needed to allocate resources.
D3D12_RESOURCE_ALLOCATION_INFO1. Describes parameters needed to allocate resources, including offset.
D3D12_RESOURCE_BARRIER. Describes a resource barrier (transition in resource use).
D3D12_RESOURCE_DESC. Describes a resource, such as a texture. This structure is used extensively.
D3D12_RESOURCE_TRANSITION_BARRIER. Describes the transition of subresources between different usages.
D3D12_RESOURCE_UAV_BARRIER. Represents a resource in which all UAV accesses must complete before any future UAV accesses can begin.
D3D12_ROOT_CONSTANTS. Describes constants inline in the root signature that appear in shaders as one constant buffer.
D3D12_ROOT_DESCRIPTOR. Describes descriptors inline in the root signature version 1.0 that appear in shaders.
D3D12_ROOT_DESCRIPTOR1. Describes descriptors inline in the root signature version 1.1 that appear in shaders.
D3D12_ROOT_DESCRIPTOR_TABLE. Describes the root signature 1.0 layout of a descriptor table as a collection of descriptor ranges that appear one after the other in a descriptor heap.
D3D12_ROOT_DESCRIPTOR_TABLE1. Describes the root signature 1.1 layout of a descriptor table as a collection of descriptor ranges that appear one after the other in a descriptor heap.
D3D12_ROOT_PARAMETER. Describes the slot of a root signature version 1.0.
D3D12_ROOT_PARAMETER1. Describes the slot of a root signature version 1.1.
D3D12_ROOT_SIGNATURE_DESC. Describes the layout of a root signature version 1.0.
D3D12_ROOT_SIGNATURE_DESC1. Describes the layout of a root signature version 1.1.
D3D12_RT_FORMAT_ARRAY. Wraps an array of render target formats.
D3D12_SAMPLE_POSITION. Describes a sub-pixel sample position for use with programmable sample positions.
D3D12_SAMPLER_DESC. Describes a sampler state.
D3D12_SHADER_BYTECODE. Describes shader data.
D3D12_SHADER_CACHE_SESSION_DESC. Describes a shader cache session.
D3D12_SHADER_RESOURCE_VIEW_DESC. Describes a shader-resource view.
D3D12_SO_DECLARATION_ENTRY. Describes a vertex element in a vertex buffer in an output slot.
D3D12_STATIC_SAMPLER_DESC. Describes a static sampler.
D3D12_STREAM_OUTPUT_BUFFER_VIEW. Describes a stream output buffer.
D3D12_STREAM_OUTPUT_DESC. Describes a streaming output buffer.
D3D12_SUBRESOURCE_DATA. Describes subresource data.
D3D12_SUBRESOURCE_FOOTPRINT. Describes the format, width, height, depth, and row-pitch of the subresource into the parent resource.
D3D12_SUBRESOURCE_INFO. Describes subresource data.
D3D12_SUBRESOURCE_RANGE_UINT64. Describes a subresource memory range.
D3D12_SUBRESOURCE_TILING. Describes a tiled subresource volume.
D3D12_TEX1D_ARRAY_DSV. Describes the subresources from an array of 1D textures to use in a depth-stencil view.
D3D12_TEX1D_ARRAY_RTV. Describes the subresources from an array of 1D textures to use in a render-target view.
D3D12_TEX1D_ARRAY_SRV. Describes the subresources from an array of 1D textures to use in a shader-resource view.
D3D12_TEX1D_ARRAY_UAV. Describes an array of unordered-access 1D texture resources.
D3D12_TEX1D_DSV. Describes the subresource from a 1D texture that is accessible to a depth-stencil view.
D3D12_TEX1D_RTV. Describes the subresource from a 1D texture to use in a render-target view.
D3D12_TEX1D_SRV. Specifies the subresource from a 1D texture to use in a shader-resource view.
D3D12_TEX1D_UAV. Describes a unordered-access 1D texture resource.
D3D12_TEX2D_ARRAY_DSV. Describes the subresources from an array of 2D textures that are accessible to a depth-stencil view.
D3D12_TEX2D_ARRAY_RTV. Describes the subresources from an array of 2D textures to use in a render-target view.
D3D12_TEX2D_ARRAY_SRV. Describes the subresources from an array of 2D textures to use in a shader-resource view.
D3D12_TEX2D_ARRAY_UAV. Describes an array of unordered-access 2D texture resources.
D3D12_TEX2D_DSV. Describes the subresource from a 2D texture that is accessible to a depth-stencil view.
D3D12_TEX2D_RTV. Describes the subresource from a 2D texture to use in a render-target view.
D3D12_TEX2D_SRV. Describes the subresource from a 2D texture to use in a shader-resource view.
D3D12_TEX2D_UAV. Describes a unordered-access 2D texture resource.
D3D12_TEX2DMS_ARRAY_DSV. Describes the subresources from an array of multi sampled 2D textures for a depth-stencil view.
D3D12_TEX2DMS_ARRAY_RTV. Describes the subresources from an array of multi sampled 2D textures to use in a render-target view.
D3D12_TEX2DMS_ARRAY_SRV. Describes the subresources from an array of multi sampled 2D textures to use in a shader-resource view.
D3D12_TEX2DMS_DSV. Describes the subresource from a multi sampled 2D texture that is accessible to a depth-stencil view.
D3D12_TEX2DMS_RTV. Describes the subresource from a multi sampled 2D texture to use in a render-target view.
D3D12_TEX2DMS_SRV. Describes the subresources from a multi sampled 2D texture to use in a shader-resource view.
D3D12_TEX3D_RTV. Describes the subresources from a 3D texture to use in a render-target view.
D3D12_TEX3D_SRV. Describes the subresources from a 3D texture to use in a shader-resource view.
D3D12_TEX3D_UAV. Describes a unordered-access 3D texture resource.
D3D12_TEXCUBE_ARRAY_SRV. Describes the subresources from an array of cube textures to use in a shader-resource view.
D3D12_TEXCUBE_SRV. Describes the subresource from a cube texture to use in a shader-resource view.
D3D12_TEXTURE_BARRIER. Describes a texture memory access barrier. Used by texture barriers to indicate when resource memory must be made visible for a specific access type.
D3D12_TEXTURE_COPY_LOCATION. Describes a portion of a texture for the purpose of texture copies.
D3D12_TILE_REGION_SIZE. Describes the size of a tiled region.
D3D12_TILE_SHAPE. Describes the shape of a tile by specifying its dimensions.
D3D12_TILED_RESOURCE_COORDINATE. Describes the coordinates of a tiled resource.
D3D12_UNORDERED_ACCESS_VIEW_DESC. Describes the subresources from a resource that are accessible by using an unordered-access view.
D3D12_VERTEX_BUFFER_VIEW. Describes a vertex buffer view.
D3D12_VERSIONED_DEVICE_REMOVED_EXTENDED_DATA. Represents versioned Device Removed Extended Data (DRED) data, so that debuggers and debugger extensions can access DRED data.
D3D12_VERSIONED_ROOT_SIGNATURE_DESC. Holds any version of a root signature description, and is designed to be used with serialization/deserialization functions.
D3D12_VIEW_INSTANCE_LOCATION. Specifies the viewport/stencil and render target associated with a view instance.
D3D12_VIEW_INSTANCING_DESC. Specifies parameters used during view instancing configuration.
D3D12_VIEWPORT. Describes the dimensions of a viewport.
D3D12_WRITEBUFFERIMMEDIATE_PARAMETER. Specifies the immediate value and destination address written using ID3D12CommandList2::WriteBufferImmediate.