diff options
| author | 2021-09-14 00:45:50 -0400 | |
|---|---|---|
| committer | 2021-11-16 22:11:30 +0100 | |
| commit | 6000fe69a4b2805a48ce045d9a383fda27d5e57b (patch) | |
| tree | 9709b9a66749cb446f6092a9ae9c71deed7ad9e3 | |
| parent | bootmanager: Fix screenshot resolution factor usage (diff) | |
| download | yuzu-6000fe69a4b2805a48ce045d9a383fda27d5e57b.tar.gz yuzu-6000fe69a4b2805a48ce045d9a383fda27d5e57b.tar.xz yuzu-6000fe69a4b2805a48ce045d9a383fda27d5e57b.zip | |
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.
| -rw-r--r-- | src/video_core/texture_cache/image_info.cpp | 4 |
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 7fa8fd4fe..bdf306bf9 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 { | |||
| 101 | // FIXME: Call this without passing *this | 101 | // FIXME: Call this without passing *this |
| 102 | layer_stride = CalculateLayerStride(*this); | 102 | layer_stride = CalculateLayerStride(*this); |
| 103 | maybe_unaligned_layer_stride = CalculateLayerSize(*this); | 103 | maybe_unaligned_layer_stride = CalculateLayerSize(*this); |
| 104 | rescaleable &= (block.depth == 0) && resources.levels == 1; | 104 | rescaleable &= (block.depth == 0) && resources.levels == 1 && num_samples == 1; |
| 105 | } | 105 | } |
| 106 | } | 106 | } |
| 107 | 107 | ||
| @@ -134,7 +134,7 @@ ImageInfo::ImageInfo(const Tegra::Engines::Maxwell3D::Regs& regs, size_t index) | |||
| 134 | type = ImageType::e3D; | 134 | type = ImageType::e3D; |
| 135 | size.depth = rt.depth; | 135 | size.depth = rt.depth; |
| 136 | } else { | 136 | } else { |
| 137 | rescaleable = block.depth == 0 && size.height > 256; | 137 | rescaleable = block.depth == 0 && size.height > 256 && num_samples == 1; |
| 138 | type = ImageType::e2D; | 138 | type = ImageType::e2D; |
| 139 | resources.layers = rt.depth; | 139 | resources.layers = rt.depth; |
| 140 | } | 140 | } |