From 8587403e0e454f176a1b259285c3d0ab703adcdf Mon Sep 17 00:00:00 2001 From: Stenzek Date: Mon, 2 Apr 2018 01:01:08 +1000 Subject: [PATCH] ShaderCache: Write currently-known UIDs to cache when re-creating file This way, if we load a UID cache where the data was incomplete (e.g. Dolphin crashed), we don't lose the existing UIDs which were previously at the beginning. --- Source/Core/VideoCommon/ShaderCache.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Source/Core/VideoCommon/ShaderCache.cpp b/Source/Core/VideoCommon/ShaderCache.cpp index 12166d2d4c..cd7ec4ced9 100644 --- a/Source/Core/VideoCommon/ShaderCache.cpp +++ b/Source/Core/VideoCommon/ShaderCache.cpp @@ -602,6 +602,12 @@ void ShaderCache::LoadPipelineUIDCache() m_gx_pipeline_uid_cache_file.WriteBytes(&CACHE_FILE_MAGIC, sizeof(GX_PIPELINE_UID_VERSION)); m_gx_pipeline_uid_cache_file.WriteBytes(&GX_PIPELINE_UID_VERSION, sizeof(GX_PIPELINE_UID_VERSION)); + + // Write any current UIDs out to the file. + // This way, if we load a UID cache where the data was incomplete (e.g. Dolphin crashed), + // we don't lose the existing UIDs which were previously at the beginning. + for (const auto& it : m_gx_pipeline_cache) + AppendGXPipelineUID(it.first); } }