Ver código fonte

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 anos atrás
pai
commit
6000fe69a4
1 arquivos alterados com 2 adições e 2 exclusões
  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
         // FIXME: Call this without passing *this
         layer_stride = CalculateLayerStride(*this);
         layer_stride = CalculateLayerStride(*this);
         maybe_unaligned_layer_stride = CalculateLayerSize(*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;
         type = ImageType::e3D;
         size.depth = rt.depth;
         size.depth = rt.depth;
     } else {
     } else {
-        rescaleable = block.depth == 0 && size.height > 256;
+        rescaleable = block.depth == 0 && size.height > 256 && num_samples == 1;
         type = ImageType::e2D;
         type = ImageType::e2D;
         resources.layers = rt.depth;
         resources.layers = rt.depth;
     }
     }