From f6610b5b0c39c60a42ddac14a2ccc12171ac3c7e Mon Sep 17 00:00:00 2001 From: goeiecool9999 <7033575+goeiecool9999@users.noreply.github.com> Date: Thu, 24 Jul 2025 09:02:33 +0200 Subject: [PATCH] GL: use unique_ptr for prgramBinaryCache --- .../HW/Latte/Renderer/OpenGL/RendererShaderGL.cpp | 13 +++++-------- .../HW/Latte/Renderer/OpenGL/RendererShaderGL.h | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.cpp b/src/Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.cpp index cae53140..3c8ccb24 100644 --- a/src/Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.cpp +++ b/src/Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.cpp @@ -266,8 +266,8 @@ void RendererShaderGL::ShaderCacheLoading_begin(uint64 cacheTitleId) { const uint32 cacheMagic = GeneratePrecompiledCacheId(); const std::string cacheFilename = fmt::format("{:016x}_gl.bin", cacheTitleId); - s_programBinaryCache = FileCache::Open(ActiveSettings::GetCachePath("shaderCache/precompiled/{}", cacheFilename), true, cacheMagic); - if (s_programBinaryCache == nullptr) + s_programBinaryCache.reset(FileCache::Open(ActiveSettings::GetCachePath("shaderCache/precompiled/{}", cacheFilename), true, cacheMagic)); + if (!s_programBinaryCache) cemuLog_log(LogType::Force, "Unable to open OpenGL precompiled cache {}", cacheFilename); } s_isLoadingShaders = true; @@ -280,13 +280,10 @@ void RendererShaderGL::ShaderCacheLoading_end() void RendererShaderGL::ShaderCacheLoading_Close() { - if(s_programBinaryCache) - { - delete s_programBinaryCache; - s_programBinaryCache = nullptr; - } + s_programBinaryCache.reset(); g_compiled_shaders_total = 0; g_compiled_shaders_async = 0; } -FileCache* RendererShaderGL::s_programBinaryCache{}; + +std::unique_ptr RendererShaderGL::s_programBinaryCache{}; diff --git a/src/Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.h b/src/Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.h index 60c51cc1..a5a24ca5 100644 --- a/src/Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.h +++ b/src/Cafe/HW/Latte/Renderer/OpenGL/RendererShaderGL.h @@ -37,6 +37,6 @@ private: bool m_shader_attached{ false }; bool m_isCompiled{ false }; - static class FileCache* s_programBinaryCache; + static std::unique_ptr s_programBinaryCache; };