Events in PVRVk

Events allow very precise threading of both CPU and GPU operations

Events can be used for fine-grained control, where a specific point in time during a command buffer execution needs to wait for either a CPU or a GPU side event. This can allow very precise threading of CPU and GPU side operations, but can become really complicated fast.

It is important and powerful to remember that events can be waited on in a command buffer with the waitEvents() function. They can be signalled both by the CPU by calling event->signal(), or when a specific command buffer point is reached by calling commandBuffer->signalEvent(). Execution of a specific point in a command buffer can be controlled either from the CPU side, or from the GPU with another command buffer submission.