DirectX Developer Blog

New in D3D12 – background shader optimizations

In the next update to Windows, codenamed 19H1, D3D12 will allow drivers to use idle priority background CPU threads to dynamically recompile shader programs. This can improve GPU performance by specializing shader code to better match details of the hardware it is running on and/or the context in which it is being used.

DirectX engineering specs published

Engineering specs for a number of DirectX features, including DirectX Raytracing, Variable Rate Shading, and all of D3D11, are now available at This supplements the official API documentation with an extra level of detail that can be useful to expert developers.

New in D3D12 – DirectX Raytracing (DXR) now supports library subobjects

In the next update to Windows, codenamed 19H1, developers can specify DXR state subobjects inside a DXIL library. This provides an easier, flexible, and modular way of defining raytracing state, removing the need for repetitive boilerplate C++ code. This usability improvement was driven by feedback from early adopters of the API,

A corgi holding a stick in Unity's ML Agents
DirectML at GDC 2019

Last year at GDC, we shared our excitement about the many possibilities for using machine learning in game development. If you’re unfamiliar with machine learning or neural networks, I strongly encourage you to check out our blog post from last year,

Variable Rate Shading: a scalpel in a world of sledgehammers

One of the sides in the picture below is 14% faster when rendered on the same hardware, thanks to a new graphics feature available only on DirectX 12. Can you spot a difference in rendering quality?

Neither can we.  Which is why we’re very excited to announce that DirectX 12 is the first graphics API to offer broad hardware support for Variable Rate Shading.

Direct3D 11 on 12 Updates

It’s been quite a while since we last talked about D3D11On12, which enables incremental porting of an application from D3D11 to D3D12 by allowing developers to use D3D11 interfaces and objects to drive the D3D12 API. Since that time, there’s been quite a few changes,

New in D3D12 – DRED helps developers diagnose GPU faults

DRED stands for Device Removed Extended Data. DRED is an evolving set of diagnostic features designed to help identify the cause of unexpected device removal errors, delivering automatic breadcrumbs and GPU-page fault reporting on hardware that supports the necessary features (more about that later).

Direct3D team office has a Wall of GPU History

When you are the team behind something like Direct3D, you need many different graphics cards to test on.  And when you’ve been doing this for as long as we have, you’ll inevitably accumulate a LOT of cards left over from years gone by. 


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. 

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. 

Porting DirectX 12 games to Windows 7

We publish documents, header files, binaries, and samples to allow game developers to run their DirectX 12 games on Windows 7.

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.

Use VHD to Accelerate DirectX 12 Development

In case game developers are limited on how frequently they can upgrade Windows 10 on their dev machines, they can use VHD files to quickly set up a new Windows 10 OS partition and to access new or preview features from DirectX 12.

Useful Links

Below is a list of links that a DirectX 12 developer would find useful:

DirectX Discord
DirectX team on Twitter
DirectX Developer Blog
DirectX YouTube Channel
DirectX API documentation
PIX on Windows
DirectX Graphics Samples
DirectX Spec Repo
D3DDred debugger extension

We’re upgrading to discord!

We’re upgrading the forum to a Discord channel – go to to join today!
We’re going to use our Discord channel in the same way as our forums, which means that game developers will still have a great resource to get their DirectX12 questions answered,

Debugger Extension for DRED

Microsoft recently announced the release of DRED (Device Removed Extended Data) for D3D12 in the Windows 10 May 2019 Update (previously referred to as the Windows 10 19H1 Preview).  Buried in that post is a mention that Microsoft is working on a debugger extension to help simplify post-mortem analysis of DRED. 

OS Variable Refresh Rate

[Updated June 13th to clarify support for FreeSync]
With Windows Version 1903, we have added a new toggle in Graphics Settings for variable refresh rate. Variable refresh rate (VRR) is similar to NVIDIA’s G-SYNC, AMD’s FreeSync, and VESA DisplayPort Adaptive-Sync.
This new OS support is only to augment these experiences and does not replace them.

DirectX 12 boosts performance of HITMAN 2

Our partners at IO Interactive, the developers of the award-winning HITMAN franchise, recently added DirectX 12 support to HITMAN 2, with impressive results.  IO Interactive was so excited that they wanted to share a bit about how their innovative use of DirectX 12 benefits HITMAN gamers everywhere.