diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/texture_cache/image_info.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/video_core/texture_cache/image_info.cpp b/src/video_core/texture_cache/image_info.cpp index 015a2d33d..afb94082b 100644 --- a/src/video_core/texture_cache/image_info.cpp +++ b/src/video_core/texture_cache/image_info.cpp | |||
| @@ -16,6 +16,7 @@ namespace VideoCommon { | |||
| 16 | using Tegra::Texture::TextureType; | 16 | using Tegra::Texture::TextureType; |
| 17 | using Tegra::Texture::TICEntry; | 17 | using Tegra::Texture::TICEntry; |
| 18 | using VideoCore::Surface::PixelFormat; | 18 | using VideoCore::Surface::PixelFormat; |
| 19 | using VideoCore::Surface::SurfaceType; | ||
| 19 | 20 | ||
| 20 | ImageInfo::ImageInfo(const TICEntry& config) noexcept { | 21 | ImageInfo::ImageInfo(const TICEntry& config) noexcept { |
| 21 | format = PixelFormatFromTextureInfo(config.format, config.r_type, config.g_type, config.b_type, | 22 | format = PixelFormatFromTextureInfo(config.format, config.r_type, config.g_type, config.b_type, |
| @@ -102,6 +103,7 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept { | |||
| 102 | layer_stride = CalculateLayerStride(*this); | 103 | layer_stride = CalculateLayerStride(*this); |
| 103 | maybe_unaligned_layer_stride = CalculateLayerSize(*this); | 104 | maybe_unaligned_layer_stride = CalculateLayerSize(*this); |
| 104 | rescaleable &= (block.depth == 0) && resources.levels == 1; | 105 | rescaleable &= (block.depth == 0) && resources.levels == 1; |
| 106 | rescaleable &= size.height > 256 || GetFormatType(format) != SurfaceType::ColorTexture; | ||
| 105 | downscaleable = size.height > 512; | 107 | downscaleable = size.height > 512; |
| 106 | } | 108 | } |
| 107 | } | 109 | } |
| @@ -136,6 +138,7 @@ ImageInfo::ImageInfo(const Tegra::Engines::Maxwell3D::Regs& regs, size_t index) | |||
| 136 | size.depth = rt.depth; | 138 | size.depth = rt.depth; |
| 137 | } else { | 139 | } else { |
| 138 | rescaleable = block.depth == 0; | 140 | rescaleable = block.depth == 0; |
| 141 | rescaleable &= size.height > 256; | ||
| 139 | downscaleable = size.height > 512; | 142 | downscaleable = size.height > 512; |
| 140 | type = ImageType::e2D; | 143 | type = ImageType::e2D; |
| 141 | resources.layers = rt.depth; | 144 | resources.layers = rt.depth; |
| @@ -200,6 +203,7 @@ ImageInfo::ImageInfo(const Tegra::Engines::Fermi2D::Surface& config) noexcept { | |||
| 200 | .depth = 1, | 203 | .depth = 1, |
| 201 | }; | 204 | }; |
| 202 | rescaleable = block.depth == 0; | 205 | rescaleable = block.depth == 0; |
| 206 | rescaleable &= size.height > 256; | ||
| 203 | downscaleable = size.height > 512; | 207 | downscaleable = size.height > 512; |
| 204 | } | 208 | } |
| 205 | } | 209 | } |