DirectX

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:

Videos

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!

Presentations

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

concurrency

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.

memorymanagement_vulkan_directx12

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!

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.

RGP

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.

RGA

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:

Anatomy Of The Total War Engine: Part I

Tamas Rabel, Lead Graphics Programmer on the Total War series provides a detailed look at the Total War renderer as well as digging deep into some of the optimizations that the team at Creative Assembly did for the brilliant, Total War: Warhammer.

Other GPUOpen samples that use DirectX12

Hybrid Shadows

Hybrid Shadows Sample

This sample demonstrates how to combine ray traced shadows and rasterized shadow maps together to achieve higher quality and performance.

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.

Latest DirectX news on GPUOpen

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

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