Possible race condition during AcquireNextImage
In AcquireNextImage
, the layer uses QueueSubmit
to signal semaphores and fences on the queue provided by GetDeviceQueue
. There are no synchronisation
constraints on this queue, therefore there is a potential race condition if
the application intends to write to the same queue on a different thread during AcquireNextImage
. This method of signalling may also impose a performance penalty as semaphores and fences will not be signalled until all work on the queue has completed.
Merge request #56 addresses both concerns by instead signalling semaphores and fences using the VK_KHR_external_semaphore_fd
and VK_KHR_external_fence_fd
extensions respectively. Where support for these extensions does not exist in the ICD, the layer will fallback to the aforementioned QueueSubmit
method instead.