Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
2 contributors

Users who have contributed to this file

@JoseEmilio-ARM @sfricke-samsung
22 lines (13 sloc) 2.49 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.

You can’t perform that action at this time.