Make arbitrary mipmap detection toggle invalidate the texture cache

We want this setting to invalidate the cache because it may affect the appearance of textures in the rendered scene, therefore one would expect changing it while the game is running to have the expected effect immediately.
This commit is contained in:
Techjar 2018-07-03 06:19:07 -04:00
parent 4b1b713e61
commit 80b05b6f0d
3 changed files with 10 additions and 7 deletions

View File

@ -349,12 +349,12 @@ void EnhancementsWidget::AddDescriptions()
"some games as \"deflickering\" or \"smoothing\". Disabling the filter has no " "some games as \"deflickering\" or \"smoothing\". Disabling the filter has no "
"effect on performance, but may result in a sharper image, and causes few " "effect on performance, but may result in a sharper image, and causes few "
"graphical issues.\n\nIf unsure, leave this checked."); "graphical issues.\n\nIf unsure, leave this checked.");
static const char TR_ARBITRARY_MIPMAP_DETECTION_DESCRIPTION[] = static const char TR_ARBITRARY_MIPMAP_DETECTION_DESCRIPTION[] = QT_TR_NOOP(
QT_TR_NOOP("Enables detection of arbitrary mipmaps, which some games use for special " "Enables detection of arbitrary mipmaps, which some games use for special distance-based "
"distance-based effects.\nMay have false positives that result in blurry textures " "effects. May have false positives that result in blurry textures at increased internal "
"at increased internal resolution, such as in games that use very low resolution " "resolution, such as in games that use very low resolution mipmaps.\nDisabling this can also "
"mipmaps.\nDisabling this can also reduce stutter in games that " "reduce stutter in games that frequently load new textures.\nThis feature is not compatible "
"frequently load new textures.\n\nIf unsure, leave this checked."); "with GPU Texture Decoding.\n\nIf unsure, leave this checked.");
AddDescription(m_ir_combo, TR_INTERNAL_RESOLUTION_DESCRIPTION); AddDescription(m_ir_combo, TR_INTERNAL_RESOLUTION_DESCRIPTION);
AddDescription(m_aa_combo, TR_ANTIALIAS_DESCRIPTION); AddDescription(m_aa_combo, TR_ANTIALIAS_DESCRIPTION);

View File

@ -126,7 +126,8 @@ void TextureCacheBase::OnConfigChanged(VideoConfig& config)
config.bTexFmtOverlayCenter != backup_config.texfmt_overlay_center || config.bTexFmtOverlayCenter != backup_config.texfmt_overlay_center ||
config.bHiresTextures != backup_config.hires_textures || config.bHiresTextures != backup_config.hires_textures ||
config.bEnableGPUTextureDecoding != backup_config.gpu_texture_decoding || config.bEnableGPUTextureDecoding != backup_config.gpu_texture_decoding ||
config.bDisableCopyToVRAM != backup_config.disable_vram_copies) config.bDisableCopyToVRAM != backup_config.disable_vram_copies ||
config.bArbitraryMipmapDetection != backup_config.arbitrary_mipmap_detection)
{ {
Invalidate(); Invalidate();
@ -230,6 +231,7 @@ void TextureCacheBase::SetBackupConfig(const VideoConfig& config)
backup_config.efb_mono_depth = config.bStereoEFBMonoDepth; backup_config.efb_mono_depth = config.bStereoEFBMonoDepth;
backup_config.gpu_texture_decoding = config.bEnableGPUTextureDecoding; backup_config.gpu_texture_decoding = config.bEnableGPUTextureDecoding;
backup_config.disable_vram_copies = config.bDisableCopyToVRAM; backup_config.disable_vram_copies = config.bDisableCopyToVRAM;
backup_config.arbitrary_mipmap_detection = config.bArbitraryMipmapDetection;
} }
TextureCacheBase::TCacheEntry* TextureCacheBase::TCacheEntry*

View File

@ -357,6 +357,7 @@ private:
bool efb_mono_depth; bool efb_mono_depth;
bool gpu_texture_decoding; bool gpu_texture_decoding;
bool disable_vram_copies; bool disable_vram_copies;
bool arbitrary_mipmap_detection;
}; };
BackupConfig backup_config = {}; BackupConfig backup_config = {};
}; };