Add an somewhat hidden option to remove cached texture scale limitations.

Only for testing or dumping upscaled texture for replacements.
Realtime texture scaling is recommended instead.
This commit is contained in:
LunaMoo committed 2019-06-23 19:35:38 +02:00
1 parent 0dfcdb1d34
commit d4a67753dd
8 files changed
+9 -6

No files matched your search

+1
View File
@@ -660,6 +660,7 @@ static ConfigSetting graphicsSettings[] = {
ReportedConfigSetting("TexScalingType", &g_Config.iTexScalingType, 0, true, true),
ReportedConfigSetting("TexDeposterize", &g_Config.bTexDeposterize, false, true, true),
ReportedConfigSetting("TexRealtime", &g_Config.bRealtimeTexScaling, false, true, true),
ConfigSetting("UnlockCachedScaling", &g_Config.bUnlockCachedScaling, false, true, true),
ConfigSetting("VSyncInterval", &g_Config.bVSync, true, true, true),
ReportedConfigSetting("BloomHack", &g_Config.iBloomHack, 2, true, true),
+1
View File
@@ -184,6 +184,7 @@ public:
int iTexScalingType; // 0 = xBRZ, 1 = Hybrid
bool bRealtimeTexScaling;
bool bTexDeposterize;
bool bUnlockCachedScaling;
int iFpsLimit1;
int iFpsLimit2;
int iMaxRecent;
+2 -2
View File
@@ -443,7 +443,7 @@ void TextureCacheCommon::SetTexture(bool force) {
}
}
if (match && (entry->status & TexCacheEntry::STATUS_TO_SCALE) && standardScaleFactor_ != 1 && texelsScaledThisFrame_ < TEXCACHE_MAX_TEXELS_SCALED) {
if (match && (entry->status & TexCacheEntry::STATUS_TO_SCALE) && standardScaleFactor_ != 1 && (g_Config.bUnlockCachedScaling || texelsScaledThisFrame_ < TEXCACHE_MAX_TEXELS_SCALED)) {
if ((entry->status & TexCacheEntry::STATUS_CHANGE_FREQUENT) == 0) {
// INFO_LOG(G3D, "Reloading texture to do the scaling we skipped..");
match = false;
@@ -636,7 +636,7 @@ void TextureCacheCommon::HandleTextureChange(TexCacheEntry *const entry, const c
}
entry->status |= TexCacheEntry::STATUS_UNRELIABLE;
if (entry->numFrames < TEXCACHE_FRAME_CHANGE_FREQUENT) {
if (!g_Config.bUnlockCachedScaling && entry->numFrames < TEXCACHE_FRAME_CHANGE_FREQUENT) {
if (entry->status & TexCacheEntry::STATUS_FREE_CHANGE) {
entry->status &= ~TexCacheEntry::STATUS_FREE_CHANGE;
} else {
+1 -1
View File
@@ -511,7 +511,7 @@ void TextureCacheD3D11::BuildTexture(TexCacheEntry *const entry) {
}
if (scaleFactor != 1) {
if (texelsScaledThisFrame_ >= TEXCACHE_MAX_TEXELS_SCALED) {
if (!g_Config.bUnlockCachedScaling && texelsScaledThisFrame_ >= TEXCACHE_MAX_TEXELS_SCALED) {
entry->status |= TexCacheEntry::STATUS_TO_SCALE;
scaleFactor = 1;
} else {
+1 -1
View File
@@ -559,7 +559,7 @@ void TextureCacheDX9::BuildTexture(TexCacheEntry *const entry) {
}
if (scaleFactor != 1) {
if (texelsScaledThisFrame_ >= TEXCACHE_MAX_TEXELS_SCALED) {
if (!g_Config.bUnlockCachedScaling && texelsScaledThisFrame_ >= TEXCACHE_MAX_TEXELS_SCALED) {
entry->status |= TexCacheEntry::STATUS_TO_SCALE;
scaleFactor = 1;
} else {
+1 -1
View File
@@ -631,7 +631,7 @@ void TextureCacheGLES::BuildTexture(TexCacheEntry *const entry) {
}
if (scaleFactor != 1) {
if (texelsScaledThisFrame_ >= TEXCACHE_MAX_TEXELS_SCALED) {
if (!g_Config.bUnlockCachedScaling && texelsScaledThisFrame_ >= TEXCACHE_MAX_TEXELS_SCALED) {
entry->status |= TexCacheEntry::STATUS_TO_SCALE;
scaleFactor = 1;
} else {
+1 -1
View File
@@ -582,7 +582,7 @@ void TextureCacheVulkan::BuildTexture(TexCacheEntry *const entry) {
}
if (scaleFactor != 1) {
if (texelsScaledThisFrame_ >= TEXCACHE_MAX_TEXELS_SCALED) {
if (!g_Config.bUnlockCachedScaling && texelsScaledThisFrame_ >= TEXCACHE_MAX_TEXELS_SCALED) {
entry->status |= TexCacheEntry::STATUS_TO_SCALE;
scaleFactor = 1;
} else {
+1
View File
@@ -1494,6 +1494,7 @@ void OtherSettingsScreen::CreateViews() {
list->Add(new CheckBox(&g_Config.bSimpleFrameStats, gr->T("Display simple frame stats(heavy!)")));
list->Add(new CheckBox(&g_Config.bSavestateScreenshotResLimit, gr->T("Limit resolution of savestates screenshots")));
list->Add(new CheckBox(&g_Config.bDiscordPresence, n->T("Send Discord(3rd party software) Presence information")));
list->Add(new CheckBox(&g_Config.bUnlockCachedScaling, n->T("Disable texture scaling limiters. Only for testing, this WILL cause stutter even at max FPS! Strongly recommend real time scaling instead!)")));
#if defined(USING_WIN_UI)
list->Add(new CheckBox(&g_Config.bDisableWinMenu, n->T("Disable Windows menu bar")))->OnClick.Handle(this, &OtherSettingsScreen::OnDisableWinBorders);
list->Add(new CheckBox(&g_Config.bDisableWinBorders, n->T("Disable Windows borders")))->OnClick.Handle(this, &OtherSettingsScreen::OnDisableWinBorders);