Vulkan® VK_KHR_synchronization2 extension support

VK_KHR_synchronization2 extension support in our latest developer driver

Our latest Radeon Software Adrenalin developer driver has just been released, providing initial support for the VK_KHR_synchronization2 extension.

This extension revises the original core synchronization APIs to simplify the interface and improve usability of these APIs. It also adds new pipeline stage and access flag types that extend into the 64-bit range; new flags are identical to the old values within the 32-bit range, new stages and bits will be added beyond that.

Whilst the overall shape of synchronization in the new API is similar to the original, there are a number of useful changes which should make developer’s lives simpler:

  • Of particular note is that VkEvent APIs have changed to include access and layout change information when signalling an event. Our driver will now use this information to perform cache maintenance operations and image layout changes asynchronously to other operations – something that was only possible in limited circumstances in the original event APIs. 
  • In a similar vein, a new “GPU-only” flag on events allows additional optimisations when CPU interactions are not required – which we take advantage of to reduce latency and system memory traffic.

Other changes are primarily focused on making the API more intuitive, particularly with the relation between access masks, image layouts, and pipeline stages: far more information can now be provided contextually.

For example: 

  • Pipeline stages are now provided per memory barrier, and using VK_ACCESS_MEMORY_READ_BIT is now guaranteed to only flush caches affecting the pipeline stages in the same memory barrier. 

Full details of the exact changes are available in the Vulkan specification, and are summarised in the man page for VK_KHR_synchronization2 .

We’re looking forward to seeing how developers are able to use the new APIs to improve performance on AMD GPUs, and hope it will help simplify synchronization API usage in their engines.

More GPUOpen Vulkan® content

Vulkan® Memory Allocator

VMA is our single-header, MIT-licensed, C++ library for easily and efficiently managing memory allocation for your Vulkan® games and applications.


Vulkan® gives software developers control over the performance, efficiency, and capabilities of AMD Radeon™ GPUs and multi-core CPUs.

Latest news

AMD at GDC 2023

Learn about our GDC 2023 activities, including the latest developments with our FidelityFX technologies, new GI techniques, and more.

Looking for a good place to get started with exploring GPUOpen?

Getting started: our software

New or fairly new to AMD’s tools, libraries, and effects? This is the best place to get started on GPUOpen!

Getting started: development and performance

Looking for tips on getting started with developing and/or optimizing your game, whether on AMD hardware or generally? We’ve got you covered!

You may also like...

Explore our huge collection of detailed tutorials, sample code, presentations, and documentation to find answers to your graphics development questions.

Create wonder. No black boxes.

The home of great performance and optimization advice for AMD RDNA™ 2 GPUs, AMD Ryzen™ CPUs, and so much more.

Browse all our useful samples. Perfect for when you’re needing to get started, want to integrate one of our libraries, and much more.

Discover what our SDK technologies can offer you. Query hardware or software, manage memory, create rendering applications or machine learning, and much more!

Analyze, Optimize, Profile, Benchmark. We provide you with the developer tools you need to make sure your game is the best it can be!