diff options
| author | 2021-11-22 00:00:01 +0100 | |
|---|---|---|
| committer | 2021-11-22 00:00:01 +0100 | |
| commit | 853284943901560081f6ff992b6c04b7c33f0d21 (patch) | |
| tree | 841c26186ab3c572851a612d2fc52407ab797d6f /src/video_core/texture_cache | |
| parent | VulkanTexturECache: Use reinterpret on D32_S8 formats. (diff) | |
| download | yuzu-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.h | 8 |
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]; |