What's new in Direct3D 12
This topic describes the most significant new Direct3D 12 documentation available for various releases.
For info about obtaining and installing Direct3D, see Direct3D 12 programming environment setup.
Direct3D 12 on Windows 11
- DirectX Ultimate a.k.a. D3D_FEATURE_LEVEL_12_2.
- HLSL shader model 6.6
- ID3D12Device9 interface, and its methods.
See also the DirectX Agility SDK 1.4.
Windows 10 May 2020 Update
These features and APIs were added or updated for Windows 10, version 2004 (10.0; Build 19041)—also known as Windows 10 May 2020 Update.
- ID3D12Device7 interface, and its methods.
- ID3D12Device8 interface, and its methods.
- HLSL shader model 6.5 features: Direct3D 12 Raytracing (DXR) Tier 1.1, Mesh & Amplification Shaders, and Sampler Feedback.
- The D3D12_HEAP_FLAGS enumeration has been updated with the addition of D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT and D3D12_HEAP_FLAG_CREATE_NOT_ZEROED. See More control over memory allocation.
- The D3D_SHADER_MODEL enumeration has been updated with the addition of the D3D_SHADER_MODEL_6_6 constant (an experimental-level feature).
Direct3D 12 on Windows 7
- Direct3D 12 on Windows 7 is now available for developers to use.
Windows 10 May 2019 Update
These features and APIs were added or updated for Windows 10, version 1903 (10.0; Build 18362)—also known as Windows 10 May 2019 Update.
- Variable-rate shading (VRS). Lets you allocate rendering performance/power at rates that vary across your rendered image.
- HLSL shader model 6.4. Describes the machine learning intrinsics added to HLSL Shader Model 6.4.
- D3D12_DRED_VERSION enumeration. Defines constants that specify a version of Device Removed Extended Data (DRED).
- D3D12_FEATURE_DATA_D3D12_OPTIONS6 structure. Indicates the level of support that the adapter provides for metacommands.
- D3D12_FEATURE_DATA_QUERY_META_COMMAND structure. Indicates the level of support that the adapter provides for metacommands.
- D3D12_VARIABLE_SHADING_RATE_TIER enumeration. Defines constants that specify a shading rate tier (for variable-rate shading, or VRS).
- ID3D12Device6 interface, and its methods. Used to set the mode for driver background processing optimizations. Also see Background shader optimizations.
- ID3D12DeviceRemovedExtendedData interface, and its methods. Provides runtime access to Device Removed Extended Data (DRED) data.
- ID3D12DeviceRemovedExtendedDataSettings interface, and its methods. Controls Device Removed Extended Data (DRED) settings.
- D3D12GraphicsCommandList5 interface, and its methods. Support for variable-rate shading (VRS).
The D3D_SHADER_MODEL enumeration has been updated with the addition of the D3D_SHADER_MODEL_6_5 constant (an experimental-level feature).
The D3D12_COMMAND_LIST_TYPE enumeration has been updated with the addition of the D3D12_COMMAND_LIST_TYPE_VIDEO_ENCODE constant.
The D3D12_FEATURE enumeration has been updated with the addition of the D3D12_FEATURE_D3D12_OPTIONS6 and D3D12_FEATURE_QUERY_META_COMMAND constants.
The D3D12_RESOURCE_STATES enumeration has been updated with the addition of the D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE constant.
Windows 10, version 1809
These features and APIs were added or updated for Windows 10, version 1809 (10.0; Build 17763)—also known as Windows 10 October 2018 Update.
- Direct3D 12 Raytracing which uses HLSL shader model 6.3.
- Direct3D 12 Render Passes
- ID3D12Device5 interface, and its methods.
Windows 10, version 1803
These features and APIs were added or updated for Windows 10, version 1803 (10.0; Build 17134)—also known as Windows 10 April 2018 Update.
- ID3D12Device4 interface, and its methods.
Windows 10, version 1709
These interfaces have been added to the Direct3D documentation for Windows 10, version 1709.
- ID3D12Fence1 extends the functionality of creating fences by supporting the retrieval of flags passed in to create the fence.
- ID3D12GraphicsCommandList2 extends the list of available graphics commands by supporting writing immediate values directly to a buffer.
- ID3D12Device3 extends the virtual adapter functionality by creating special-purpose diagnostic heaps in system memory that persist even in the event of a GPU-fault or device-removed scenario.
The D3D_SHADER_MODEL enumeration has a new D3D_SHADER_MODEL_6_1 value added to describe the shader model 6.1.
The D3D12_FEATURE enumeration also has the new D3D12_FEATURE_D3D12_OPTIONS3 and D3D12_FEATURE_EXISTING_HEAPS values. As the names imply, these values allow you to check for additional Direct3D12 options, as well as checking for support of existing heaps.
Windows 10, version 1703
These topics have been added to the Direct3D documentation for Windows 10, version 1703.
- The ID3D12Device2::CreatePipelineState method and D3D12_Pipeline_State_Stream_Desc struct represent new and more robust way to create PSOs, and unifies the inteface for creating graphics and compute pipelines.
- The ID3D12Device1::CreatePipelineLibrary1 method expands the pipeline library interface to accept the PSOs created with the new, unified D3D12_Pipeline_State_Stream_Desc structure.
- The D3D12EnableExperimentalFeatures function allows developers to experiment with certain in-development features using a machine in Developer Mode.
- There are five new interfaces (refer to Interface Hierarchy):
- Refer to the HLSL Shader Model 6.0 Overview, which describes the wave intrinsic operations for multi-threaded pixel and compute shaders.
- The use of ID3D12Device::SetStablePowerState has changed.
- Some new features for Direct3D 11 are described in Direct3D 11.4 Features.
- AtomicCopyBufferUINT and AtomicCopyBufferUINT64 enable late-latch to reduce pervieved latency.
- ID3D12Device2::CreatePipelineState and OMSetDepthBounds enable depth-bounds testing on supported hardware.
- ResolveSubresourceRegion enables partial resolution of subresources to help optimize performance.
- SetSamplePositions enables programable sample positions on supported hardware.
November 2016 documentation update
- Revision of the remarks for ID3D12GraphicsCommandList::DiscardResource.
- Clarification of "State decay to common" (see Using Resource Barriers to Synchronize Resource States in Direct3D 12).
- The D3dx12.h header file, referred to in Helper Structures and Functions for D3D12, can be downloaded directly from The D3D12 Helper Library.
August 2016 documentation update 2
A new guide section entitled Understanding the D3D12 Debug Layer.
Three new debug layer interfaces (in Preview mode) are described: ID3D12Debug1, ID3D12DebugCommandList1, ID3D12DebugDevice1.
August 2016 documentation update 1
- Revision of Using Resource Barriers to Synchronize Resource States in Direct3D 12.
- Revision of Multi-queue resource access.
Windows 10, version 1607
These topics have been added to the Direct3D documentation for Windows 10, version 1607.
- Root Signature Version 1.1 : an overview of the updated root signatures, enabling apps to specify how static or volatile descriptors and data are, which can aid graphics driver optimizations.
- The ID3D12Device1::CreatePipelineLibrary method describes the advantages of creating a pipeline library.
- There are three new interfaces (refer to Interface Hierarchy):
- Refer to the HLSL Shader Model 6.0 Overview, which describes the wave intrinsic operations for multi-threaded pixel and compute shaders.
- The use of ID3D12Device::SetStablePowerState has changed.
- Some new features for Direct3D 11 are described in Direct3D 11.4 Features.
- The range of supported libraries for Direct3D 12 has been updated, refer to the Supported tools and libraries section of Direct3D 12 Programming Environment Setup.
- Using DirectX with high dynamic range displays and advanced color
- Variable refresh rate displays
- DXGI 1.5 Improvements