Working Samples

Working samples are available for download, showing the usage of a number of features of Direct3D 12.

Working samples

Working samples (in the form of Visual Studio 2015 projects) can be downloaded from GitHub/Microsoft/DirectX-Graphics-Samples.


The exact list of samples available at this location will vary as samples are added and updated.


Sample title Description Desktop UWP Walk-through
The HelloWorld sample set contains the following simple projects to help you get started with Direct3D 12.
Creates a window in preparation of rendering Direct3D 12 content.
Renders a simple triangle using Direct3D 12.
Demonstrates the usage of a bundle for rendering using Direct3D 12.
Demonstrates how to use constant buffers to pass data to the GPU used for rendering in Direct3D 12.
Demonstrates how to apply a texture to a triangle using Direct3D 12.
Y Y Creating a basic Direct3D 12 component
D3D12Bundles Demonstrates frame buffering and synchronization best practices as well as rendering a simple mesh using bundles. Y Y
D3D12Multithreading An example of how to build a multithreaded capable application. Y N
D3D12nBodyGravity Demonstrates how multi-engine can be used to do asynchronous compute work alongside 3D work on the same GPU. Y Y Multi-engine n-body gravity simulation
D3D12PredicationQueries Demonstrates occlusion culling using query heaps and predication. Y Y Predication queries
D3D12DynamicIndexing Demonstrates the dynamic indexing capabilities of DirectX 12 and HLSL. Y Y Dynamic Indexing using HLSL 5.1
D3D1211on12 Demonstrates basic usage of the 11on12 layer. This sample renders text using D2D using the Direct3D 11 API on a Direct3D 12 11on12 device. Y Y D2D using D3D11on12
D3D12ExecuteIndirect Demonstrates compute engine culling in conjunction with the execute indirect feature to only render objects that pass the culling test. Y Y Indirect drawing and GPU culling
D3D12PipelineStateCache Demonstrates Pipeline State Object (PSO) caching. Y Y
D3D12Fullscreen Demonstrates how to handle fullscreen to windowed transitions and window resizing in DirectX 12. Y Y
D3D12HeterogeneousMultiadapter Demonstrates how to share workloads amongst multiple heterogenous GPUs using shared heaps. Y Y
D3D12ReservedResources Demonstrates the use of reserved (tiled) resources. In this sample a quad is textured with a reserved resource containing a full mip chain. Y Y
D3D12Residency This is intended as a low-integration-cost solution to managing your Direct3D 12 heaps and committed resources, using memory management techniques from Direct3D 11. Y Y
D3D12SmallResources Demonstrates the use of small placed resources, showing the potential memory savings gained using placed resources (with a 4K alignment) over committed and reserved resources (with a 64K alignment). Y Y


Direct3D 12 Programming Guide

D3D12 Code Walk-Throughs