aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-09-14 00:45:50 -0400
committerFernando Sahmkow <fsahmkow27@gmail.com>2021-11-16 22:11:30 +0100
commit6000fe69a4b2805a48ce045d9a383fda27d5e57b (patch)
tree9709b9a66749cb446f6092a9ae9c71deed7ad9e3 /src
parent80f8d4989eca127c7ca8c7bd63134127d6fd5edc (diff)
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.
Diffstat (limited to 'src')
-rw-r--r--src/video_core/texture_cache/image_info.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/video_core/texture_cache/image_info.cpp b/src/video_core/texture_cache/image_info.cpp
index 7fa8fd4fe0..bdf306bf94 100644
--- a/src/video_core/texture_cache/image_info.cpp
+++ b/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;
}