summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp
index 6aea375f1..edb8503cb 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp
@@ -693,6 +693,10 @@ Image::~Image() = default;
693 693
694void Image::UploadMemory(const ImageBufferMap& map, 694void Image::UploadMemory(const ImageBufferMap& map,
695 std::span<const VideoCommon::BufferImageCopy> copies) { 695 std::span<const VideoCommon::BufferImageCopy> copies) {
696 const bool is_rescaled = True(flags & ImageFlagBits::Rescaled);
697 if (is_rescaled) {
698 ScaleDown();
699 }
696 glBindBuffer(GL_PIXEL_UNPACK_BUFFER, map.buffer); 700 glBindBuffer(GL_PIXEL_UNPACK_BUFFER, map.buffer);
697 glFlushMappedBufferRange(GL_PIXEL_UNPACK_BUFFER, map.offset, unswizzled_size_bytes); 701 glFlushMappedBufferRange(GL_PIXEL_UNPACK_BUFFER, map.offset, unswizzled_size_bytes);
698 702
@@ -712,6 +716,9 @@ void Image::UploadMemory(const ImageBufferMap& map,
712 } 716 }
713 CopyBufferToImage(copy, map.offset); 717 CopyBufferToImage(copy, map.offset);
714 } 718 }
719 if (is_rescaled) {
720 ScaleUp();
721 }
715} 722}
716 723
717void Image::DownloadMemory(ImageBufferMap& map, 724void Image::DownloadMemory(ImageBufferMap& map,