diff --git a/src/xrt/compositor/main/comp_target_swapchain.c b/src/xrt/compositor/main/comp_target_swapchain.c index bc3cd15b1..0caeb45b2 100644 --- a/src/xrt/compositor/main/comp_target_swapchain.c +++ b/src/xrt/compositor/main/comp_target_swapchain.c @@ -884,7 +884,12 @@ comp_target_swapchain_present(struct comp_target *ct, .pImageIndices = &index, }; + + // Need to take the queue lock for present. + os_mutex_lock(&vk->queue_mutex); VkResult ret = vk->vkQueuePresentKHR(queue, &presentInfo); + os_mutex_unlock(&vk->queue_mutex); + #ifdef VK_EXT_display_control if (cts->vblank.has_started) {