DirectX Developer Blog

DirectX 12 Ultimate
Coming to DirectX 12: More control over memory allocation

In the next update to Windows, D3D12 will be adding two new flags to the D3D12_HEAP_FLAG enumeration. These new flags are “impermanent” properties, which don’t affect the resulting memory itself, but rather the way in which it’s allocated. This gives app developers more control and flexibility.

DirectX 12 Ultimate
Coming to DirectX 12— Mesh Shaders and Amplification Shaders: Reinventing the Geometry Pipeline  

D3D12 is adding two new shader stages: the Mesh Shader and the Amplification Shader. These additions will streamline the rendering pipeline, while simultaneously boosting flexibility and efficiency.  In this new and improved pre-rasterization pipeline, Mesh and Amplification Shaders will optionally replace the section of the pipeline consisting of the Input Assembler as well as Vertex,

DirectX 12 Ultimate
Dev Preview of New DirectX 12 Features

In this blog post, we will preview a suite of new DirectX 12 features, including DirectX Raytracing tier 1.1, Mesh Shader, and Sampler Feedback. All these features are currently available in Windows 10 Insider Preview Builds (20H1).

DirectX 12 Ultimate
A Look Inside D3D12 Resource State Barriers

Many D3D12 developers have become accustomed to managing resource state transitions and read/write hazards themselves using the ResourceBarrier API. Prior to D3D12, such details were handled internally by the driver.  However, D3D12 command lists cannot provide the same deterministic state tracking as D3D10 and D3D11 device contexts. 

DirectX 12 Ultimate
DRED v1.2 supports PIX marker and event strings in Auto-Breadcrumbs

In Windows 10 1903, DRED 1.1 provided D3D12 developers with the ability to diagnose device removed events using GPU page fault data and automatic breadcrumbs. As a result, TDR debugging pain has been greatly reduced.  Hooray!  Unfortunately, developers still struggle to pinpoint which specific GPU workloads triggered the error. 

DirectX 12 Ultimate
D3DConfig: A new tool to manage DirectX Control Panel settings

The DirectX Control Panel (DXCpl.exe) has dutifully given developers the ability to configure Direct3D debug settings for nearly two decades.  But what started as a simple utility for controlling D3D debug output and driver type selection has struggled to keep up with modern DX12 debugging options. 

DirectX 12 Ultimate
New in D3D12 – Motion Estimation

In the Windows 10 May 2019 Update, codenamed 19H1, D3D12 has added a new Motion Estimation feature to D3D12. Motion estimation is the process of determining motion vectors that describe the transformation from one 2D image to another. Motion estimation is an essential part of video encoding and can be used in frame rate conversion algorithms.


DirectX 12 Ultimate
In the works: OpenCL™ and OpenGL® mapping layers to DirectX

Building on our previous work with the D3D12 Translation Layer library as well as the D3D11On12 and D3D9On12 mapping layers, we’re happy to share that we are working on two new projects: OpenCL and OpenGL mapping layers to D3D12.

DirectX 12 Ultimate
DirectX 12 Ultimate Getting Started Guide

So, you’re a developer sold on the next-gen features in DirectX 12 Ultimate?
Look no further than this little guide!
1) OS
The complete set of DirectX 12 Ultimate features will be available in the next retail version of Windows 10,

DirectX 12 Ultimate
Announcing DirectX 12 Ultimate


It is time for DirectX to evolve once again.
From the team that has brought PC and Console gamers the latest in graphics innovation for nearly 25 years, we are beyond pleased to bring gamers DirectX 12 Ultimate, the culmination of the best graphics technology we’ve ever introduced in an unprecedented alignment between PC and Xbox Series X.

DirectX 12 Ultimate
DirectX Developer Day Schedule

Tomorrow (3/19) is DirectX Developer Day! Join the Microsoft DirectX team, along with partners AMD and NVIDIA, for a series of talks and demos covering the future of gaming graphics:

The New Features and Unprecedented Opportunities of DirectX 12 – Jianye Lu
The New Standard for Next Gen Games –

DirectX 12 Ultimate
Announcing DirectX Developer Day

GDC may have been postponed, but we aren’t going to let that prevent us from bringing the next generation of graphics innovation to the world.  Join us this Thursday, March 19, for a virtual DirectX Developer Day on Mixer! The Microsoft DirectX team,

DirectX 12 Ultimate
D3D12 Translation Layer and D3D11On12 are now open source

If you’re a developer looking to port your game to DX12, we have good news: The D3D12 Translation Layer, a helper library for translating graphics concepts and commands from a D3D11-style domain to a D3D12-style domain, is now open source.

As an example of how to use the library, we have also opened sourced the D3D11On12 mapping layer.

DirectX 12 Ultimate
Demystifying Fullscreen Optimizations

We wrote this article to explain the difference between Fullscreen Exclusive and Fullscreen Optimizations. This article goes details the roll out and the benefits that come with Fullscreen Optimizations.

DirectX 12 Ultimate
DirectX 12 and Fortnite

On Monday, Epic Games announced that DirectX 12 support is coming to Fortnite. And today, the wait is over: anyone updating to the v11.20 patch has the option to try out Fortnite’s beta DX12 path!
What does this all mean? Let’s see if we can help!

DirectX 12 Ultimate
CPU- and GPU-boundedness

We wrote this article to explain two key terms: CPU-bound and GPU-bound. There’s some misinformation about this terms, and we’re hoping this article can help fix this problem.
Even though applications run on the CPU, many modern-day applications require a lot of GPU support.

DirectX 12 Ultimate
Coming to DirectX 12: D3D9On12 and D3D11On12 Resource Interop APIs

D3D is introducing D3D9on12 with resource interop APIs and adding similar resource interop APIs to D3D11on12.  With this new support, callers can now retrieve the underlying D3D12 resource from the D3D11 or D3D9 resource object even when the resource was created with D3D11 or D3D9 API.