DirectX Developer Blog

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. 

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 directxtech.com forum to a Discord channel – go to https://discord.gg/directx to join today!
We’re going to use our Discord channel in the same way as our directxtech.com 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.

New in D3D12 – background shader optimizations

tl;dr;
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

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!

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.

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.   

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.

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 Raytracing (DXR) Tier 1.1

An overview of features in DXR Tier 1.1.

Coming to DirectX 12— Sampler Feedback: some useful once-hidden data, unlocked

Why Feedback: A Streaming Scenario
Suppose you are shading a complicated 3D scene. The camera moves swiftly throughout the scene, causing some objects to be moved into different levels of detail. Since you need to aggressively optimize for memory, you bind resources to cope with the demand for different LODs.

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).

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. 

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.