Developing Microsoft® DirectX®12 applications

Microsoft® DirectX®12 provides low-level APIs for creating games and other graphics applications. 

Here on GPUOpen, we not only provide tools and libraries to help you with the development of your Vulkan application, but we’ve produced quite a few detailed blogs and videos to support you along the way too. 

Jump to the section you need:


Our engineers regularly present at industry conferences on topics relating to DirectX.

These links to YouTube videos will usually provide an opportunity to download the slides shown as well.

Don’t miss our other videos about DirectX and more available here on GPUOpen!


If you’re just getting started with DirectX12, these presentations are an excellent place to start to understand the concepts.


Concurrency Model in Explicit Graphics APIs

Dr. Matthäus G. Chajdas and Dominik Baumeister give a (slightly) more in-depth look for people interested in graphics programming. They prepare the mental model for explicit graphics APIs such as DirectX12 and Vulkan.


Memory Management in Vulkan and DX12

Adam Sawicki introduces memory management in Vulkan and DirectX 12 with a detailed presentation on the different memory types, gives some tips and tricks, and discusses the libraries involved.

Don’t miss more presentations on DirectX and other topics available on GPUOpen!

Sample - "HelloD3D12"

Ready to put things into practice? Our “HelloD3D12” sample is a great way to get hands-on and see how everything works.

We have more DirectX samples further down the page too.

HelloD3D12 DirectX® 12 Sample

HelloD3D12 is a small, introductory Direct3D 12 sample, which shows how to set up a window and render a textured quad complete with proper uploading handling, multiple frames queued and constant buffers.

Libraries and tools

If you’re looking for some welcome help with allocating and managing memory, our Direct3D 12 Memory Allocator (D3D12MA) library is exactly what you need!

AMD GPUOpen Direct3D12 Memory Allocator (D3D12MA)

D3D12 Memory Allocator

The D3D12 Memory Allocator (D3D12MA) is a C++ library that provides a simple and easy-to-integrate API to help you allocate memory for DirectX®12 buffers and textures.

Our very popular Radeon Developer Tool Suite is a package containing several tools to help you analyze and optimize your DirectX application, and now includes ray tracing analysis. 

Radeon Raytracing Analyzer

Radeon™ Raytracing Analyzer (RRA) is a tool which allows you to investigate the performance of your raytracing applications and highlight potential bottlenecks.

Radeon™ Memory Visualizer (RMV) is a tool to allow you to gain a deep understanding of how your application uses memory for graphics resources.

AMD Radeon GPU Profiler

RGP gives you unprecedented, in-depth access to a GPU. Easily analyze graphics, async compute usage, event timing, pipeline stalls, barriers, bottlenecks, and other performance inefficiencies.

Radeon GPU Analyzer is an offline compiler and performance analysis tool for DirectX®, Vulkan®, SPIR-V™, OpenGL® and OpenCL™.

Don’t forget, you can also find DirectX support with our FidelityFX effects. We also have other tools and SDKs which support DirectX.

Ready to learn more?

Take a look at our dedicated DirectX 12 and DirectX 12 Ultimate pages here on GPUOpen. 

There’s also plenty of blog posts that are about or mention DirectX12 to look through:

glTFSample Cauldron Sample Project

This sample demonstrates how to use most of Cauldron’s features. It is also a useful reference for getting started with developing your own samples and prototypes.


This sample demonstrates how to use the explicit Crossfire™ application programming interface (API).

ForwardPlus11 DirectX® 11 SDK Sample

This sample provides an example implementation of the Forward+ algorithm, which extends traditional forward rendering to support high numbers of dynamic lights while maintaining performance.

Other GPUOpen samples that use DirectX12

Latest DirectX news on GPUOpen

Developing with Vulkan®? We have a similar page for Vulkan® developers!

Vulkan logo

Developing Vulkan® applications

Discover our Vulkan blog posts, presentations, samples, and more. Find out how we can help you create and optimize your Vulkan applications!

Explore more