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

TextureCache: Fix Buffer Views Scaling.

Fernando Sahmkow 5 лет назад
Родитель
Сommit
d7c9792169

+ 6 - 5
src/video_core/texture_cache/image_view_base.cpp

@@ -37,11 +37,12 @@ ImageViewBase::ImageViewBase(const ImageViewInfo& info, const ImageInfo& image_i
 }
 
 ImageViewBase::ImageViewBase(const ImageInfo& info, const ImageViewInfo& view_info)
-    : format{info.format}, type{ImageViewType::Buffer}, size{
-                                                            .width = info.size.width,
-                                                            .height = 1,
-                                                            .depth = 1,
-                                                        } {
+    : image_id{NULL_IMAGE_ID}, format{info.format}, type{ImageViewType::Buffer},
+      size{
+          .width = info.size.width,
+          .height = 1,
+          .depth = 1,
+      } {
     ASSERT_MSG(view_info.type == ImageViewType::Buffer, "Expected texture buffer");
 }
 

+ 3 - 0
src/video_core/texture_cache/texture_cache.h

@@ -631,6 +631,9 @@ bool TextureCache<P>::IsRescaling() const noexcept {
 
 template <class P>
 bool TextureCache<P>::IsRescaling(const ImageViewBase& image_view) const noexcept {
+    if (image_view.type == ImageViewType::Buffer) {
+        return false;
+    }
     const ImageBase& image = slot_images[image_view.image_id];
     return True(image.flags & ImageFlagBits::Rescaled);
 }