vulkan: fix validation errors when generating mipmaps for a compute-writable texture.

This commit is contained in:
Sasha Szpakowski
2024-09-27 19:50:11 -03:00
parent 876625d7e3
commit d185eb8218
+16 -5
View File
@@ -491,11 +491,22 @@ void Texture::generateMipmapsInternal()
blit.dstSubresource.baseArrayLayer = rootView.startLayer;
blit.dstSubresource.layerCount = static_cast<uint32_t>(layerCount);
vkCmdBlitImage(commandBuffer,
textureImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
textureImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
1, &blit,
VK_FILTER_LINEAR);
if (imageLayout != VK_IMAGE_LAYOUT_GENERAL)
{
vkCmdBlitImage(commandBuffer,
textureImage, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
textureImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
1, &blit,
VK_FILTER_LINEAR);
}
else
{
vkCmdBlitImage(commandBuffer,
textureImage, VK_IMAGE_LAYOUT_GENERAL,
textureImage, VK_IMAGE_LAYOUT_GENERAL,
1, &blit,
VK_FILTER_LINEAR);
}
barrier.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
barrier.newLayout = imageLayout;