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:
Graphics feature architect Rys Sommefeldt provides a short presentation on the major advantages of the new API, and how to best utilize it on AMD RDNA™ 2-based hardware.
Engineer Stephan Hodes provides a short description how VRS works, and how AMD’s FidelityFX Variable Shading technique can assist with integrating VRS into your engine.
Engineer Colin Riley provides a short description of Sampler Feedback and Mesh Shaders, as well as important performance guidelines that graphics developers should consider when using AMD RDNA™ 2-based GPUs.
This talk by AMD’s Adam Sawicki at Digital Dragons in 2018 discusses how to port your engine to Vulkan® or DirectX®12.
If you’re just getting started with DirectX12, these presentations are an excellent place to start to understand the concepts.
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.
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 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!
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 (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 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™.
Ready to learn more?
Find out more about the latest releases of VMA and D3DMA – our easy-to-integrate memory allocation libraries for Vulkan® and Direct3D® 12.
Radeon Memory Visualizer (RMV) now supports Named Resources in DirectX® 12 applications. This blog explains how you can view them in RMV.
Radeon™ GPU Analyzer v2.4.1 introduces support for DXR shaders in a new mode of the command line tool.
GPUPerfAPI v3.7 brings support for Radeon™ RX 6000 series GPUs, new raytracing counters for DirectX® Raytracing, a new scalar and instruction cache counter, and new raytracing High-Frequency counters in Microsoft® PIX2.
Part 4 of a series of posts on AMD FreeSync™ Premium Pro Technology. Here, we look at how to enable FreeSync Premium Pro with all next gen graphics APIs.
This is a Visual Studio® Code extension for the Radeon GPU Analyzer (RGA). This extension makes it possible to use RGA directly from within VS Code.
Tom Hammersley from Codemasters talks about integrating FidelityFX into the Ego Engine and implementing Contrast Adaptive Sharpening (CAS).
With DirectX 12 comes the power of generating disassembly and hardware resource usage statistics that are closest to the real-world case, and therefore making better performance optimization decisions.
Radeon GPU Analyzer (RGA) has support for DirectX12 compute shaders with the command line tool. This mode can generate GCN/RDNA ISA disassembly for your compute shaders, regardless of the physically installed GPU.
A guide to using the Windows Performance Analyzer tool, with a focus on video resources.
Guide to using the shader compiler control API in AGS 5.0
3D intensive application performance may suffer greatly if the best graphics device is not selected. As a developer you can easily fix this problem by adding only one line to your executable’s source code.
How to set up the AMD Driver Symbol Server in Visual Studio.
The final instalment in Tamas Rabel’s insight into developing the Total War engine looks at Multi-GPU.
Here’s Tamas Rabel again with some juicy details about how Creative Assembly brought Total War to DirectX® 12.
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
This sample shows how to combine FidelityFX Stochastic Screen Space Reflections with ray tracing in order to create high quality reflections.
This sample demonstrates how to combine ray traced shadows and rasterized shadow maps together to achieve higher quality and performance.
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.
The Barycentrics samples show how to enable intrinsic instructions in your DirectX®11 or DirectX®12 HLSL code.
This is a slightly modified version of the Microsoft D3D12nBodyGravity sample, This sample demonstrates the use of asynchronous compute shaders (multi-engine) to simulate an n-body gravity system.
Explore the fantastic DirectX®12 Developer resources available from our partners at Microsoft®
Latest DirectX news on GPUOpen
The upcoming AMD Radeon Software Adrenalin Edition release offers full Shader Model 6.7 support to align with the new update to Agility SDK from Microsoft.
AMD is proud to announce our support of Microsoft® and its release of DirectStorage. The DirectStorage SDK is now available for download.
Our accelerated ray intersection library for DirectX®12 and Vulkan®. The source code for v4.1 is now available on GitHub under the MIT license.