Skip to content

Latest commit

 

History

History
22 lines (13 loc) · 2.5 KB

synchronization.md

File metadata and controls

22 lines (13 loc) · 2.5 KB

Synchronization

Synchronization is one of the most powerful but also most complex parts of using Vulkan. The application developer is now responsible for managing synchronization using the various Vulkan synchronization primitives. Improper use of synchronization can lead to hard-to-find bugs as well as poor performance in cases where the the GPU is unnecessarily idle.

synchronization_overview.png

Overall strategies

There are a set of examples provided by Khronos on how to use some of the synchronization primitives. The goal is to keep the GPU fed with data as described in this great presentation from Tobias Hector: part 1 slides (video) and part 2 slides (video).

Pipeline Barriers

Pipeline Barriers give control over which pipeline stages need to wait on previous pipeline stages when a command buffer is executed.

synchronization_pipeline_barrieres.png

While Pipeline Barriers might be hard to understand at first, there are many great Khronos talks and other resources that go more in depth on the topic.