summaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2021-11-22 00:00:01 +0100
committerGravatar Fernando Sahmkow2021-11-22 00:00:01 +0100
commit853284943901560081f6ff992b6c04b7c33f0d21 (patch)
tree841c26186ab3c572851a612d2fc52407ab797d6f /src/video_core/texture_cache
parentVulkanTexturECache: Use reinterpret on D32_S8 formats. (diff)
downloadyuzu-853284943901560081f6ff992b6c04b7c33f0d21.tar.gz
yuzu-853284943901560081f6ff992b6c04b7c33f0d21.tar.xz
yuzu-853284943901560081f6ff992b6c04b7c33f0d21.zip
TextureCache: Simplify blitting of D24S8 formats and fix bugs.
Diffstat (limited to 'src/video_core/texture_cache')
-rw-r--r--src/video_core/texture_cache/texture_cache.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index 0e4907c53..9548abec8 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -1781,7 +1781,13 @@ void TextureCache<P>::CopyImage(ImageId dst_id, ImageId src_id, std::vector<Imag
1781 const SubresourceExtent src_extent{.levels = 1, .layers = 1}; 1781 const SubresourceExtent src_extent{.levels = 1, .layers = 1};
1782 const SubresourceRange dst_range{.base = dst_base, .extent = dst_extent}; 1782 const SubresourceRange dst_range{.base = dst_base, .extent = dst_extent};
1783 const SubresourceRange src_range{.base = src_base, .extent = src_extent}; 1783 const SubresourceRange src_range{.base = src_base, .extent = src_extent};
1784 const ImageViewInfo dst_view_info(ImageViewType::e2D, dst.info.format, dst_range); 1784 PixelFormat dst_format = dst.info.format;
1785 if (GetFormatType(src.info.format) == SurfaceType::DepthStencil &&
1786 GetFormatType(dst_format) == SurfaceType::ColorTexture &&
1787 BytesPerBlock(dst_format) == 4) {
1788 dst_format = PixelFormat::A8B8G8R8_UNORM;
1789 }
1790 const ImageViewInfo dst_view_info(ImageViewType::e2D, dst_format, dst_range);
1785 const ImageViewInfo src_view_info(ImageViewType::e2D, src.info.format, src_range); 1791 const ImageViewInfo src_view_info(ImageViewType::e2D, src.info.format, src_range);
1786 const auto [dst_framebuffer_id, dst_view_id] = RenderTargetFromImage(dst_id, dst_view_info); 1792 const auto [dst_framebuffer_id, dst_view_id] = RenderTargetFromImage(dst_id, dst_view_info);
1787 Framebuffer* const dst_framebuffer = &slot_framebuffers[dst_framebuffer_id]; 1793 Framebuffer* const dst_framebuffer = &slot_framebuffers[dst_framebuffer_id];