Vulkan® is an open standard and cross-platform Application Programming Interface (API) developed by the Khronos® Group.
Derived from AMD’s revolutionary Mantle API, Vulkan® is a powerful low-overhead graphics API designed for developers who want or need deeper hardware control over GPU acceleration for maximized performance and predictability.
Vulkan® gives software developers control over the performance, efficiency, and capabilities of AMD Radeon™ GPUs and multi-core CPUs.
Tools to support you with Vulkan® development
Radeon™ Memory Visualizer
Appreciate your allocations. Obliterate that oversubscription. And make good those memory leaks.
Show your video memory some love.
Radeon™ GPU Profiler
Analyze. Adjust. Accelerate.
Optimize your game’s renderer today, with our flagship graphics profiler.
Radeon™ GPU Analyzer
Write faster shaders, faster.
Discover the Vulkan® Memory Allocator (VMA) library
Our battle-tested, open source memory allocation library for Vulkan® makes allocating memory a doddle.
Need to know driver version information? Try here!
AMD Open Source Driver for Vulkan®
The AMD Open Source Driver for Vulkan® is an open-source Vulkan driver for AMD Radeon™ graphics adapters on Linux®.
The driver is built on top of AMD’s Platform Abstraction Library (PAL), a shared component that is designed to encapsulate certain hardware and OS-specific programming details for many of AMD’s 3D and compute drivers. Leveraging PAL can help provide a consistent experience across platforms, including support for recently released GPUs and compatibility with AMD developer tools.
Just want the drivers to play a Vulkan® game?
The history of Vulkan®
From the consortium that brought you OpenGL®, Vulkan® is a new graphics API for developers who want or need deeper hardware control. Designed with “low-overhead” capabilities, Vulkan® gives devs total control over the performance, efficiency, and capabilities of Radeon™ GPUs and multi-core CPUs.
Compared to OpenGL®, Vulkan® substantially reduces “API overhead,” which is background work a CPU must do to interpret what a game is asking of the hardware. Reducing this overhead gives hardware much more time to spend on delivering meaningful features, performance and image quality. Vulkan® also exposes GPU hardware features not ordinarily accessible through OpenGL®.
Vulkan® inherits these capabilities from AMD’s Mantle graphics API. Mantle was the first of its kind: the first low-overhead PC graphics API, the first to grant unprecedented access to PC GPU resources, and the first to offer absolute control of those resources. Most importantly for gamers, Mantle got the industry thinking about how much additional GPU performance could be unlocked with a low-overhead graphics API.
Though the Mantle API was tailored for AMD hardware, Mantle was also designed with just enough hardware abstraction to accommodate almost any modern graphics architecture. That architecture proved useful when we contributed the source code and API specification of Mantle to serve as the foundation of Vulkan® in May of 2015.
Since that time, Vulkan® has been forged under the stewardship of a comprehensive industry alliance that spans the hardware development, game development and content creation industries. Many new and significant capabilities have been added, such as support and performance optimizations for Android® smartphones and tablets, or cross-OS support for Windows® 7, Windows® 8.1, Windows® 10, and Linux®.
Read some of our Vulkan® tutorials
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.
Vulkan barriers are unique as they requires you to provide what resources are transitioning and also specify a source and destination pipeline stage.
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.
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.
Not enough? Go visit our dedicated Let's Learn... Vulkan® page:
Our latest Vulkan® news
VMA appears as an optional component that can be selected in the Vulkan SDK 188.8.131.52 installer.
VK_KHR_dynamic_rendering cuts out the hassle of creating render pass objects, and lets you create a render pass instance directly. (link to khronos.org)
Smart Access Memory (SAM) provides the CPU with direct access to all video memory. These guidelines help you to improve CPU and GPU performance using SAM.
Vulkan and the Vulkan logo are trademarks of the Khronos Group Inc.