Synchronisation in PVRVk (and Vulkan in general)
Vulkan provides three different types of objects for synchronisation
The Vulkan API, and therefore PVRVk, has a detailed synchronisation scheme.
There are three important synchronisation objects: the semaphore, the fence and the event.
- The semaphore is responsible for coarse-grained syncing of GPU operations, usually between queue submissions and/or presentation.
- The fence is required to wait on GPU events on the CPU such as submissions, presentation image acquisitions, and some other cases.
- The event is used for fine-grained control of the GPU from either the CPU or the GPU. It can also be used as part of layout transitions and dependencies.