瀏覽代碼

image_info: Mark MSAA textures as non-rescalable

Blitting or resolving multisampled images requires the dimensions of the src and dst to be equal for valid usage, making them difficult for resolution scaling using the current implementation.
ameerj 4 年之前
父節點
當前提交
6000fe69a4
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      src/video_core/texture_cache/image_info.cpp

+ 2 - 2
src/video_core/texture_cache/image_info.cpp

@@ -101,7 +101,7 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept {
         // FIXME: Call this without passing *this
         layer_stride = CalculateLayerStride(*this);
         maybe_unaligned_layer_stride = CalculateLayerSize(*this);
-        rescaleable &= (block.depth == 0) && resources.levels == 1;
+        rescaleable &= (block.depth == 0) && resources.levels == 1 && num_samples == 1;
     }
 }
 
@@ -134,7 +134,7 @@ ImageInfo::ImageInfo(const Tegra::Engines::Maxwell3D::Regs& regs, size_t index)
         type = ImageType::e3D;
         size.depth = rt.depth;
     } else {
-        rescaleable = block.depth == 0 && size.height > 256;
+        rescaleable = block.depth == 0 && size.height > 256 && num_samples == 1;
         type = ImageType::e2D;
         resources.layers = rt.depth;
     }