Swapchain return VK_ERROR_OUT_OF_DATE_KHR when window resized.

This commit is contained in:
Bill Hollings 2018-06-23 15:53:16 -04:00
parent d58fd7e101
commit d34c790bea
2 changed files with 3 additions and 3 deletions

View File

@ -436,7 +436,7 @@ MVKQueuePresentSurfaceSubmission::MVKQueuePresentSurfaceSubmission(MVKDevice* de
MVKSwapchain* mvkSC = (MVKSwapchain*)pPresentInfo->pSwapchains[i];
_surfaceImages.push_back(mvkSC->getImage(pPresentInfo->pImageIndices[i]));
if (mvkSC->getHasSurfaceSizeChanged()) {
_submissionResult = VK_SUBOPTIMAL_KHR;
_submissionResult = VK_ERROR_OUT_OF_DATE_KHR;
}
}
}

View File

@ -79,11 +79,11 @@ VkResult MVKSwapchain::acquireNextImageKHR(uint64_t timeout,
*pImageIndex = minWaitIndex; // Return the index of the image with the shortest wait
_surfaceImages[minWaitIndex]->signalWhenAvailable((MVKSemaphore*)semaphore, (MVKFence*)fence);
return getHasSurfaceSizeChanged() ? VK_SUBOPTIMAL_KHR : VK_SUCCESS;
return getHasSurfaceSizeChanged() ? VK_ERROR_OUT_OF_DATE_KHR : VK_SUCCESS;
}
bool MVKSwapchain::getHasSurfaceSizeChanged() {
return !CGSizeEqualToSize(_mtlLayer.drawableSize, _mtlLayerOrigDrawSize);
return !CGSizeEqualToSize(_mtlLayer.updatedDrawableSizeMVK, _mtlLayerOrigDrawSize);
}
uint64_t MVKSwapchain::getNextAcquisitionID() { return ++_currentAcquisitionID; }