[dxvk] Lock queue around acquireNextImage

This commit is contained in:
Philip Rebohle 2018-06-26 15:33:43 +02:00
parent 9cae049b53
commit eb39cf4b11
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
1 changed files with 6 additions and 0 deletions

View File

@ -36,6 +36,10 @@ namespace dxvk {
Rc<DxvkImageView> DxvkSwapchain::getImageView(
const Rc<DxvkSemaphore>& wakeSync) {
// AcquireNextImage might interfere with the Vulkan
// device queue internally, so we should lock it
m_device->lockSubmission();
VkResult status = this->acquireNextImage(wakeSync);
if (status == VK_ERROR_OUT_OF_DATE_KHR) {
@ -43,6 +47,8 @@ namespace dxvk {
status = this->acquireNextImage(wakeSync);
}
m_device->unlockSubmission();
if (status != VK_SUCCESS
&& status != VK_SUBOPTIMAL_KHR)
throw DxvkError("DxvkSwapchain: Failed to acquire image");