Fix swap chain images being in wrong state (Fixes #23)
This commit is contained in:
@@ -116,13 +116,18 @@ namespace OpenVulkano::Vulkan
|
||||
auto swapChainImages = device->device.getSwapchainImagesKHR(swapChain);
|
||||
|
||||
images.resize(swapChainImages.size());
|
||||
for (uint32_t i = 0; i < swapChainImages.size(); i++)
|
||||
{
|
||||
images[i].image = swapChainImages[i];
|
||||
imgViewCreateInfo.image = swapChainImages[i];
|
||||
images[i].view = device->device.createImageView(imgViewCreateInfo);
|
||||
images[i].fence = device->device.createFence({ vk::FenceCreateFlags(vk::FenceCreateFlagBits::eSignaled)});
|
||||
}
|
||||
device->ExecuteNow([&](auto cmdBuffer) {
|
||||
for (uint32_t i = 0; i < swapChainImages.size(); i++)
|
||||
{
|
||||
images[i].image = swapChainImages[i];
|
||||
imgViewCreateInfo.image = swapChainImages[i];
|
||||
images[i].view = device->device.createImageView(imgViewCreateInfo);
|
||||
images[i].fence = device->device.createFence({vk::FenceCreateFlags(vk::FenceCreateFlagBits::eSignaled)});
|
||||
|
||||
const vk::ImageMemoryBarrier imgMemBarrier({}, vk::AccessFlagBits::eTransferWrite, vk::ImageLayout::eUndefined, vk::ImageLayout::ePresentSrcKHR, 0, 0, images[i].image, vk::ImageSubresourceRange(vk::ImageAspectFlagBits::eColor, 0, 1, 0, 1));
|
||||
cmdBuffer.pipelineBarrier(vk::PipelineStageFlagBits::eTopOfPipe, vk::PipelineStageFlagBits::eTransfer, {}, nullptr, nullptr, imgMemBarrier);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void SwapChain::DestroySwapChain()
|
||||
|
||||
Reference in New Issue
Block a user