diff options
Diffstat (limited to 'src/video_core/texture_cache')
| -rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 5aaeb16ca..2e19fced2 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h | |||
| @@ -1855,9 +1855,20 @@ void TextureCache<P>::CopyImage(ImageId dst_id, ImageId src_id, std::vector<Imag | |||
| 1855 | .height = std::min(dst_view.size.height, src_view.size.height), | 1855 | .height = std::min(dst_view.size.height, src_view.size.height), |
| 1856 | .depth = std::min(dst_view.size.depth, src_view.size.depth), | 1856 | .depth = std::min(dst_view.size.depth, src_view.size.depth), |
| 1857 | }; | 1857 | }; |
| 1858 | UNIMPLEMENTED_IF(copy.extent != expected_size); | 1858 | const Extent3D scaled_extent = [is_rescaled, expected_size]() { |
| 1859 | if (!is_rescaled) { | ||
| 1860 | return expected_size; | ||
| 1861 | } | ||
| 1862 | const auto& resolution = Settings::values.resolution_info; | ||
| 1863 | return Extent3D{ | ||
| 1864 | .width = resolution.ScaleUp(expected_size.width), | ||
| 1865 | .height = resolution.ScaleUp(expected_size.height), | ||
| 1866 | .depth = expected_size.depth, | ||
| 1867 | }; | ||
| 1868 | }(); | ||
| 1869 | UNIMPLEMENTED_IF(copy.extent != scaled_extent); | ||
| 1859 | 1870 | ||
| 1860 | runtime.ConvertImage(dst_framebuffer, dst_view, src_view, is_rescaled); | 1871 | runtime.ConvertImage(dst_framebuffer, dst_view, src_view); |
| 1861 | } | 1872 | } |
| 1862 | } | 1873 | } |
| 1863 | 1874 | ||