Make the arbitrary mipmap detection threshold configureable
This is likely a "superuser" option at best, but I want to be able to play with it without rebuilding if I want to tweak the heuristics
This commit is contained in:
parent
29b7e33c14
commit
8be5cdfcad
|
@ -109,6 +109,8 @@ const ConfigInfo<bool> GFX_ENHANCE_DISABLE_COPY_FILTER{
|
||||||
{System::GFX, "Enhancements", "DisableCopyFilter"}, true};
|
{System::GFX, "Enhancements", "DisableCopyFilter"}, true};
|
||||||
const ConfigInfo<bool> GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION{
|
const ConfigInfo<bool> GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION{
|
||||||
{System::GFX, "Enhancements", "ArbitraryMipmapDetection"}, true};
|
{System::GFX, "Enhancements", "ArbitraryMipmapDetection"}, true};
|
||||||
|
const ConfigInfo<float> GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION_THRESHOLD{
|
||||||
|
{System::GFX, "Enhancements", "ArbitraryMipmapDetectionThreshold"}, 4.5f};
|
||||||
|
|
||||||
// Graphics.Stereoscopy
|
// Graphics.Stereoscopy
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,7 @@ extern const ConfigInfo<std::string> GFX_ENHANCE_POST_SHADER;
|
||||||
extern const ConfigInfo<bool> GFX_ENHANCE_FORCE_TRUE_COLOR;
|
extern const ConfigInfo<bool> GFX_ENHANCE_FORCE_TRUE_COLOR;
|
||||||
extern const ConfigInfo<bool> GFX_ENHANCE_DISABLE_COPY_FILTER;
|
extern const ConfigInfo<bool> GFX_ENHANCE_DISABLE_COPY_FILTER;
|
||||||
extern const ConfigInfo<bool> GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION;
|
extern const ConfigInfo<bool> GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION;
|
||||||
|
extern const ConfigInfo<float> GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION_THRESHOLD;
|
||||||
|
|
||||||
// Graphics.Stereoscopy
|
// Graphics.Stereoscopy
|
||||||
|
|
||||||
|
|
|
@ -507,7 +507,7 @@ public:
|
||||||
// expect a normal blurred mipmap to look like and what we actually received
|
// expect a normal blurred mipmap to look like and what we actually received
|
||||||
// 4.5% was chosen because it's just below the lowest clearly-arbitrary texture
|
// 4.5% was chosen because it's just below the lowest clearly-arbitrary texture
|
||||||
// I found in my tests, the background clouds in Mario Galaxy's Observatory lobby.
|
// I found in my tests, the background clouds in Mario Galaxy's Observatory lobby.
|
||||||
constexpr auto THRESHOLD_PERCENT = 4.5f;
|
const auto threshold = g_ActiveConfig.fArbitraryMipmapDetectionThreshold;
|
||||||
|
|
||||||
auto* src = downsample_buffer;
|
auto* src = downsample_buffer;
|
||||||
auto* dst = downsample_buffer + levels[1].shape.row_length * levels[1].shape.height * 4;
|
auto* dst = downsample_buffer + levels[1].shape.row_length * levels[1].shape.height * 4;
|
||||||
|
@ -533,7 +533,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
auto all_levels = total_diff / (levels.size() - 1);
|
auto all_levels = total_diff / (levels.size() - 1);
|
||||||
return all_levels > THRESHOLD_PERCENT;
|
return all_levels > threshold;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -121,6 +121,8 @@ void VideoConfig::Refresh()
|
||||||
bForceTrueColor = Config::Get(Config::GFX_ENHANCE_FORCE_TRUE_COLOR);
|
bForceTrueColor = Config::Get(Config::GFX_ENHANCE_FORCE_TRUE_COLOR);
|
||||||
bDisableCopyFilter = Config::Get(Config::GFX_ENHANCE_DISABLE_COPY_FILTER);
|
bDisableCopyFilter = Config::Get(Config::GFX_ENHANCE_DISABLE_COPY_FILTER);
|
||||||
bArbitraryMipmapDetection = Config::Get(Config::GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION);
|
bArbitraryMipmapDetection = Config::Get(Config::GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION);
|
||||||
|
fArbitraryMipmapDetectionThreshold =
|
||||||
|
Config::Get(Config::GFX_ENHANCE_ARBITRARY_MIPMAP_DETECTION_THRESHOLD);
|
||||||
|
|
||||||
stereo_mode = Config::Get(Config::GFX_STEREO_MODE);
|
stereo_mode = Config::Get(Config::GFX_STEREO_MODE);
|
||||||
iStereoDepth = Config::Get(Config::GFX_STEREO_DEPTH);
|
iStereoDepth = Config::Get(Config::GFX_STEREO_DEPTH);
|
||||||
|
|
|
@ -75,6 +75,7 @@ struct VideoConfig final
|
||||||
bool bForceTrueColor;
|
bool bForceTrueColor;
|
||||||
bool bDisableCopyFilter;
|
bool bDisableCopyFilter;
|
||||||
bool bArbitraryMipmapDetection;
|
bool bArbitraryMipmapDetection;
|
||||||
|
float fArbitraryMipmapDetectionThreshold;
|
||||||
|
|
||||||
// Information
|
// Information
|
||||||
bool bShowFPS;
|
bool bShowFPS;
|
||||||
|
|
Loading…
Reference in New Issue