diff --git a/src/ShaderCache.cpp b/src/ShaderCache.cpp index e8ae09a3ac..6bf2dd59aa 100644 --- a/src/ShaderCache.cpp +++ b/src/ShaderCache.cpp @@ -7,6 +7,8 @@ #include "Features/DynamicCubemaps.h" +#include "Plugin.h" + namespace SIE { namespace SShaderCache @@ -2190,13 +2192,21 @@ namespace SIE ini.LoadFile(L"Data\\ShaderCache\\Info.ini"); bool valid = true; - if (auto version = ini.GetValue("Cache", "Version")) { - if (strcmp(SHADER_CACHE_VERSION.string().c_str(), version) != 0 || !(globals::state->ValidateCache(ini))) { - logger::info("Disk cache outdated or invalid"); + // Check plugin version + if (auto pluginVersion = ini.GetValue("Cache", "PluginVersion")) { + if (strcmp(Plugin::VERSION.string().c_str(), pluginVersion) != 0) { + logger::info("Disk cache outdated: plugin version changed (current: {}, cached: {})", + Plugin::VERSION.string(), pluginVersion); valid = false; } } else { - logger::info("Disk cache outdated or invalid"); + logger::info("Disk cache outdated: no plugin version found"); + valid = false; + } + + // Check feature validation + if (!(globals::state->ValidateCache(ini))) { + logger::info("Disk cache outdated: feature validation failed"); valid = false; } @@ -2211,10 +2221,10 @@ namespace SIE { CSimpleIniA ini; ini.SetUnicode(); - ini.SetValue("Cache", "Version", SHADER_CACHE_VERSION.string().c_str()); + ini.SetValue("Cache", "PluginVersion", Plugin::VERSION.string().c_str()); globals::state->WriteDiskCacheInfo(ini); ini.SaveFile(L"Data\\ShaderCache\\Info.ini"); - logger::info("Saved disk cache info"); + logger::info("Saved disk cache info (plugin version: {})", Plugin::VERSION.string()); } ShaderCache::ShaderCache() diff --git a/src/ShaderCache.h b/src/ShaderCache.h index 3ad3ed81ce..fd1bf9d4e0 100644 --- a/src/ShaderCache.h +++ b/src/ShaderCache.h @@ -3,8 +3,6 @@ #include #include -static constexpr REL::Version SHADER_CACHE_VERSION = { 0, 0, 0, 42 }; - using namespace std::chrono; namespace ShaderConstants