
Featured tutorials

HelloVulkan Introductory Vulkan® Sample
HelloVulkan is a small, introductory Vulkan® “Hello Triangle” sample which shows how to set up a window, set up a Vulkan context, and render a triangle.

Understanding Vulkan® Objects
An important part of learning the Vulkan® API is to understand what types of objects are defined in it, what they represent and how they relate to each other.
Featured presentations
Lessons Learned from Optimising a AAA Vulkan Title on Desktop - Lou Kramer
The Most Common Vulkan Mistakes - Dominik Witczak (May 2016)
Vulkan® tutorials

Porting Detroit: Become Human from PlayStation® 4 to PC – Part 3
The final part of this joint series with Quantic Dream discusses shader scalarization, async compute, multithreaded render lists, memory management using our Vulkan Memory Allocator (VMA), and much more.

Porting Detroit: Become Human from PlayStation® 4 to PC – Part 2
Part 2 of this joint post between Quantic Dream and AMD looks at non-uniform resource indexing on PC and for AMD cards specifically.

Porting Detroit: Become Human from PlayStation® 4 to PC – Part 1
Porting the PS4® game Detroit: Become Human to PC presented some interesting challenges. This first part of a joint collaboration from engineers at Quantic Dream and AMD discusses the decision to use Vulkan® and talks shader pipelines and descriptors.

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.

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).

Decoding Radeon™ Vulkan® versions
A machine-readable mapping that you can integrate into your software for decoding Radeon™ Vulkan® versions. Includes a link to a handy table.

Reducing Vulkan® API call overhead
This guest post, by Arseny Kapoulkine from Roblox, looks at the costs associated with calling various Vulkan functions tens or hundreds of thousands of times per frame, and ways to bring them down.

Stable Barycentric Coordinates
The AMD GCN Vulkan extensions allow developers to get access to the barycentric coordinates at the fragment-shader level.

Understanding Vulkan® Objects
An important part of learning the Vulkan® API is to understand what types of objects are defined in it, what they represent and how they relate to each other.

Content Creation Tools and Multi-GPU
mGPU isn’t just for gamers – if you’re a developer working on a game, you should think of using mGPU to make your life easier.

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

Vulkan® and DOOM
This post takes a look at the interesting bits of helping id Software with their DOOM Vulkan effort, from the perspective of AMD’s Game Engineering Team.

AMD Driver Symbol Server
How to set up the AMD Driver Symbol Server in Visual Studio.

Vulkan® Barriers Explained
Vulkan barriers are unique as they requires you to provide what resources are transitioning and also specify a source and destination pipeline stage.

Using Vulkan® Device Memory
This post serves as a guide on how to best use the various Memory Heaps & Memory Types exposed in Vulkan on AMD drivers, starting with some high-level tips.

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.

Fast Compaction with mbcnt
With shader extensions, we provide access to a much better tool to get compaction done: GCN provides a special op-code for compaction within a wavefront.

Unlock the Rasterizer with Out-of-Order Rasterization
GCN hardware supports a special out-of-order rasterization mode which relaxes the ordering guarantee, and allows fragments to be produced out-of-order.

Using the Vulkan® Validation Layers
Vulkan validation layers make it easier to catch any mistakes, provide useful information beyond basic errors and minimize portability issues.
Vulkan® samples

HelloVulkan Introductory Vulkan® Sample
HelloVulkan is a small, introductory Vulkan® “Hello Triangle” sample which shows how to set up a window, set up a Vulkan context, and render a triangle.

Vulkan® OoORasterization
The Vulkan™ out-of-order rasterization sample shows how to use the out-of-order rasterization extension.

Vulkan® mbcnt Sample
This sample shows how to use the AMD_shader_ballot extension and mbcnt to perform a fast reduction within a wavefront.

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.