Understanding synchronization primitives in Vulkan

Synchronization is key to bringing order and discipline into asynchronous system. It not only improves resource utilization, it also benefits from parallelism by reducing CPU and GPU idle time.

Vulkan offers the following four types of synchronization primitive for concurrent execution:

  • Fences: Offer synchronization between the host and device
  • Semaphores: Synchronize between and within queues
  • Events: Between queue submissions
  • Barriers: Within a command buffer between commands

In this section, we will learn about synchronization primitives and understand their API specification. The drawing object example that we implemented in this chapter makes use of semaphores to synchronize swapchain image writing. ...

Get Learning Vulkan now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.