Przeglądaj źródła

Merge pull request #10675 from liamwhite/scaler

image_info: adjust rescale thresholds and refactor constant use
liamwhite 3 lat temu
rodzic
commit
e0de6dd63f
1 zmienionych plików z 12 dodań i 8 usunięć
  1. 12 8
      src/video_core/texture_cache/image_info.cpp

+ 12 - 8
src/video_core/texture_cache/image_info.cpp

@@ -22,6 +22,9 @@ using Tegra::Texture::TICEntry;
 using VideoCore::Surface::PixelFormat;
 using VideoCore::Surface::PixelFormat;
 using VideoCore::Surface::SurfaceType;
 using VideoCore::Surface::SurfaceType;
 
 
+constexpr u32 RescaleHeightThreshold = 288;
+constexpr u32 DownscaleHeightThreshold = 512;
+
 ImageInfo::ImageInfo(const TICEntry& config) noexcept {
 ImageInfo::ImageInfo(const TICEntry& config) noexcept {
     forced_flushed = config.IsPitchLinear() && !Settings::values.use_reactive_flushing.GetValue();
     forced_flushed = config.IsPitchLinear() && !Settings::values.use_reactive_flushing.GetValue();
     dma_downloaded = forced_flushed;
     dma_downloaded = forced_flushed;
@@ -113,8 +116,9 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept {
         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;
-        rescaleable &= size.height > 256 || GetFormatType(format) != SurfaceType::ColorTexture;
-        downscaleable = size.height > 512;
+        rescaleable &= size.height > RescaleHeightThreshold ||
+                       GetFormatType(format) != SurfaceType::ColorTexture;
+        downscaleable = size.height > DownscaleHeightThreshold;
     }
     }
 }
 }
 
 
@@ -152,8 +156,8 @@ ImageInfo::ImageInfo(const Maxwell3D::Regs::RenderTargetConfig& ct,
         size.depth = ct.depth;
         size.depth = ct.depth;
     } else {
     } else {
         rescaleable = block.depth == 0;
         rescaleable = block.depth == 0;
-        rescaleable &= size.height > 256;
-        downscaleable = size.height > 512;
+        rescaleable &= size.height > RescaleHeightThreshold;
+        downscaleable = size.height > DownscaleHeightThreshold;
         type = ImageType::e2D;
         type = ImageType::e2D;
         resources.layers = ct.depth;
         resources.layers = ct.depth;
     }
     }
@@ -232,8 +236,8 @@ ImageInfo::ImageInfo(const Fermi2D::Surface& config) noexcept {
             .height = config.height,
             .height = config.height,
             .depth = 1,
             .depth = 1,
         };
         };
-        rescaleable = block.depth == 0 && size.height > 256;
-        downscaleable = size.height > 512;
+        rescaleable = block.depth == 0 && size.height > RescaleHeightThreshold;
+        downscaleable = size.height > DownscaleHeightThreshold;
     }
     }
 }
 }
 
 
@@ -275,8 +279,8 @@ ImageInfo::ImageInfo(const Tegra::DMA::ImageOperand& config) noexcept {
     resources.layers = 1;
     resources.layers = 1;
     layer_stride = CalculateLayerStride(*this);
     layer_stride = CalculateLayerStride(*this);
     maybe_unaligned_layer_stride = CalculateLayerSize(*this);
     maybe_unaligned_layer_stride = CalculateLayerSize(*this);
-    rescaleable = block.depth == 0 && size.height > 256;
-    downscaleable = size.height > 512;
+    rescaleable = block.depth == 0 && size.height > RescaleHeightThreshold;
+    downscaleable = size.height > DownscaleHeightThreshold;
 }
 }
 
 
 } // namespace VideoCommon
 } // namespace VideoCommon