renderer_vulkan: Use linear filtering when possible

* Fixes blocky artifacts in Samus Returns
This commit is contained in:
emufan4568
2022-10-17 19:44:27 +03:00
committed by GPUCode
parent 9ac7ef20b0
commit 309b25d201

View File

@ -408,11 +408,17 @@ bool TextureRuntime::BlitTextures(Surface& source, Surface& dest,
.baseArrayLayer = blit.dst_layer,
.layerCount = 1},
.dstOffsets = dest_offsets};
// Don't use linear filtering on depth attachments
const vk::Filter filtering =
blit_area.srcSubresource.aspectMask & vk::ImageAspectFlagBits::eDepth ||
blit_area.dstSubresource.aspectMask & vk::ImageAspectFlagBits::eDepth
? vk::Filter::eNearest
: vk::Filter::eLinear;
vk::CommandBuffer command_buffer = scheduler.GetRenderCommandBuffer();
command_buffer.blitImage(source.alloc.image, vk::ImageLayout::eTransferSrcOptimal,
dest.alloc.image, vk::ImageLayout::eTransferDstOptimal, blit_area,
vk::Filter::eNearest);
filtering);
return true;
}