Fix RenderTexture usage/image-aspect

All color textures need to be sampled due to how we are transposing the image when writing to the render-texture.

Depth-Stencil render-textures need to designate if it wants _either_ depth or stencil when creating an image-view.
This commit is contained in:
Wunkolo 2023-08-21 22:40:40 -07:00
parent cfd02f936e
commit d35c803ad6

View file

@ -278,7 +278,7 @@ RendererVK::Texture& RendererVK::getColorRenderTexture(u32 addr, PICA::ColorFmt
textureInfo.setTiling(vk::ImageTiling::eOptimal);
textureInfo.setUsage(
vk::ImageUsageFlagBits::eColorAttachment | vk::ImageUsageFlagBits::eInputAttachment | vk::ImageUsageFlagBits::eTransferSrc |
vk::ImageUsageFlagBits::eTransferDst
vk::ImageUsageFlagBits::eTransferDst | vk::ImageUsageFlagBits::eSampled
);
textureInfo.setSharingMode(vk::SharingMode::eExclusive);
textureInfo.setInitialLayout(vk::ImageLayout::eUndefined);
@ -352,7 +352,8 @@ RendererVK::Texture& RendererVK::getDepthRenderTexture(u32 addr, PICA::DepthFmt
viewInfo.viewType = vk::ImageViewType::e2D;
viewInfo.format = textureInfo.format;
viewInfo.components = vk::ComponentMapping();
viewInfo.subresourceRange = vk::ImageSubresourceRange(vk::ImageAspectFlagBits::eDepth | vk::ImageAspectFlagBits::eStencil, 0, 1, 0, 1);
//viewInfo.subresourceRange = vk::ImageSubresourceRange(vk::ImageAspectFlagBits::eDepth | vk::ImageAspectFlagBits::eStencil, 0, 1, 0, 1);
viewInfo.subresourceRange = vk::ImageSubresourceRange(vk::ImageAspectFlagBits::eDepth, 0, 1, 0, 1);
if (auto [result, imageMemory] = Vulkan::commitImageHeap(device.get(), physicalDevice, {&newTexture.image.get(), 1});
result == vk::Result::eSuccess) {