mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-12-22 16:30:57 +01:00
Merge pull request #10675 from liamwhite/scaler
image_info: adjust rescale thresholds and refactor constant use
This commit is contained in:
commit
e0de6dd63f
1 changed files with 12 additions and 8 deletions
|
@ -22,6 +22,9 @@ using Tegra::Texture::TICEntry;
|
|||
using VideoCore::Surface::PixelFormat;
|
||||
using VideoCore::Surface::SurfaceType;
|
||||
|
||||
constexpr u32 RescaleHeightThreshold = 288;
|
||||
constexpr u32 DownscaleHeightThreshold = 512;
|
||||
|
||||
ImageInfo::ImageInfo(const TICEntry& config) noexcept {
|
||||
forced_flushed = config.IsPitchLinear() && !Settings::values.use_reactive_flushing.GetValue();
|
||||
dma_downloaded = forced_flushed;
|
||||
|
@ -113,8 +116,9 @@ ImageInfo::ImageInfo(const TICEntry& config) noexcept {
|
|||
layer_stride = CalculateLayerStride(*this);
|
||||
maybe_unaligned_layer_stride = CalculateLayerSize(*this);
|
||||
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;
|
||||
} else {
|
||||
rescaleable = block.depth == 0;
|
||||
rescaleable &= size.height > 256;
|
||||
downscaleable = size.height > 512;
|
||||
rescaleable &= size.height > RescaleHeightThreshold;
|
||||
downscaleable = size.height > DownscaleHeightThreshold;
|
||||
type = ImageType::e2D;
|
||||
resources.layers = ct.depth;
|
||||
}
|
||||
|
@ -232,8 +236,8 @@ ImageInfo::ImageInfo(const Fermi2D::Surface& config) noexcept {
|
|||
.height = config.height,
|
||||
.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;
|
||||
layer_stride = CalculateLayerStride(*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
|
||||
|
|
Loading…
Reference in a new issue