diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm index 47208f6bd..4a226d94d 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm @@ -958,7 +958,6 @@ [mtlCmdBuff presentDrawable: getCAMetalDrawable()]; if (scName) { mvkPopDebugGroup(mtlCmdBuff); } - resetMetalDrawable(); signalPresentationSemaphore(mtlCmdBuff); retain(); // Ensure this image is not destroyed while awaiting MTLCommandBuffer completion diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm index 9bc255f83..b93d3b94d 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKSwapchain.mm @@ -97,6 +97,7 @@ // Return the index of the image with the shortest wait and signal the semaphore and fence when it's available *pImageIndex = minWaitImage->_swapchainIndex; + minWaitImage->resetMetalDrawable(); minWaitImage->signalWhenAvailable((MVKSemaphore*)semaphore, (MVKFence*)fence); return getHasSurfaceSizeChanged() ? VK_ERROR_OUT_OF_DATE_KHR : VK_SUCCESS;