
Microsoft® DirectX®12 tutorials and samples
Microsoft® DirectX®12 provides APIs for creating games and other graphics applications. That’s something we can help you with!
Featured

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.

Using Radeon™ GPU Analyzer with DirectX®12 Graphics
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.
DirectX®12 tutorials

Viewing DirectX® 12 Named Resources with Radeon™ Memory Visualizer 1.3
Radeon Memory Visualizer (RMV) now supports Named Resources in DirectX® 12 applications. This blog explains how you can view them in RMV.

Using Radeon™ GPU Analyzer v2.4.1 with DirectX® Raytracing
Radeon™ GPU Analyzer v2.4.1 introduces support for DXR shaders in a new mode of the command line tool.

Getting Started with Radeon™ Memory Visualizer (RMV)
Radeon™ Memory Visualizer (RMV) is a tool provided by AMD for use by game engine developers. It allows engineers to examine, diagnose, and understand the GPU memory management within their projects.

Using AMD FreeSync™ Premium Pro HDR: Code Samples
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.

Using the Visual Studio® Code Extension for RGA
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.

Integrating AMD FidelityFX into the Ego Engine
Tom Hammersley from Codemasters talks about integrating FidelityFX into the Ego Engine and implementing Contrast Adaptive Sharpening (CAS).

Using Radeon™ GPU Analyzer with DirectX®12 Graphics
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.

Using Radeon™ GPU Analyzer with Direct3D®12 Compute
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.

Optimizing GPU occupancy and resource usage with large thread groups
Sebastian Aaltonen, co-founder of Second Order Ltd, talks about how to optimize GPU occupancy and resource usage of compute shaders that use large thread groups.

Profiling video memory with Windows® Performance Analyzer
A guide to using the Windows Performance Analyzer tool, with a focus on video resources.

Leveraging Asynchronous Queues for Concurrent Execution
Understanding concurrency (and what breaks it) is extremely important when optimizing for modern GPUs.

Anatomy Of The Total War Engine: Part V
The final instalment in Tamas Rabel’s insight into developing the Total War engine looks at Multi-GPU.

Anatomy Of The Total War Engine: Part IV
Tamas Rabel talks about how Total War: Warhammer utilized asynchronous compute to extract some extra GPU performance in DirectX® 12 and delves into the process of moving some of the passes in the engine to asynchronous compute pipelines.

Anatomy Of The Total War Engine: Part III
Here’s Tamas Rabel again with some juicy details about how Creative Assembly brought Total War to DirectX® 12.

Anatomy Of The Total War Engine: Part II
Tamas Rabel from Creative Assembly discusses how performance was measured with the Total War Engine.

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.

GCN Shader Extensions for Direct3D® and Vulkan®
One of the mandates of GPUOpen is to give developers better access to the hardware, and this post details extensions for Vulkan and Direct3D12 that expose additional GCN features to developers.

Maxing Out GPU usage in nBodyGravity
Asynchronous compute can help you to get the maximum GPU usage. I’ll be explaining the details based on the nBodyGravity sample from Microsoft.
DirectX®12 samples

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.

nBody DirectX® 12 Sample (asynchronous compute version)
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.

Barycentrics DirectX® Shader Extension Samples
The Barycentrics samples show how to enable intrinsic instructions in your DirectX®11 or DirectX®12 HLSL code.

AMD Freesync™ Premium Pro (HDR) Sample
This sample demonstrates how to enable Freesync Premium Pro (HDR) with the DirectX® 12 and Vulkan® APIs.

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.

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

Hybrid Stochastic Reflections Sample
This sample shows how to combine FidelityFX Stochastic Screen Space Reflections with ray tracing in order to create high quality reflections.