Просмотр исходного кода

gl_texture_cache: fix scaling on upload

ameerj 4 лет назад
Родитель
Сommit
29710f3250
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      src/video_core/renderer_opengl/gl_texture_cache.cpp

+ 7 - 0
src/video_core/renderer_opengl/gl_texture_cache.cpp

@@ -693,6 +693,10 @@ Image::~Image() = default;
 
 void Image::UploadMemory(const ImageBufferMap& map,
                          std::span<const VideoCommon::BufferImageCopy> copies) {
+    const bool is_rescaled = True(flags & ImageFlagBits::Rescaled);
+    if (is_rescaled) {
+        ScaleDown();
+    }
     glBindBuffer(GL_PIXEL_UNPACK_BUFFER, map.buffer);
     glFlushMappedBufferRange(GL_PIXEL_UNPACK_BUFFER, map.offset, unswizzled_size_bytes);
 
@@ -712,6 +716,9 @@ void Image::UploadMemory(const ImageBufferMap& map,
         }
         CopyBufferToImage(copy, map.offset);
     }
+    if (is_rescaled) {
+        ScaleUp();
+    }
 }
 
 void Image::DownloadMemory(ImageBufferMap& map,