From 975b1a8e47c45e2ea532b03765bd67d8bc865db4 Mon Sep 17 00:00:00 2001 From: PavelBARABANOV Date: Mon, 24 Nov 2025 23:53:31 +0300 Subject: [PATCH] [vk] Use point filter for D32 to R32 conversion to eliminate blur --- src/video_core/renderer_vulkan/vk_texture_cache.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 136a11f78d..f821c71b7b 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp @@ -1269,6 +1269,17 @@ void TextureCacheRuntime::ConvertImage(Framebuffer* dst, ImageView& dst_view, Im case PixelFormat::R32G32_FLOAT: case PixelFormat::R32G32_SINT: case PixelFormat::R32_FLOAT: + if (src_view.format == PixelFormat::D32_FLOAT) { + const Region2D region{ + .start = {0, 0}, + .end = {static_cast(dst->RenderArea().width), + static_cast(dst->RenderArea().height)}, + }; + return blit_image_helper.BlitColor(dst, src_view, region, region, + Tegra::Engines::Fermi2D::Filter::Point, + Tegra::Engines::Fermi2D::Operation::SrcCopy); + } + break; case PixelFormat::R16_FLOAT: case PixelFormat::R16_UNORM: case PixelFormat::R16_SNORM: