Move PPU and shader cache

New hash-based location (already used for SPU)
Bump PPU cache version, improve naming and decrease size

Remove fs::get_data_dir
Disable boot.elf cache
This commit is contained in:
Nekotekina 2019-01-13 20:06:30 +03:00
parent aefee04c4a
commit a419e98acb
7 changed files with 91 additions and 160 deletions

View file

@ -10,7 +10,6 @@
#include "SPUInterpreter.h"
#include "SPUDisAsm.h"
#include "SPURecompiler.h"
#include "PPUAnalyser.h"
#include <algorithm>
#include <mutex>
#include <thread>
@ -86,15 +85,15 @@ void spu_cache::add(const std::vector<u32>& func)
void spu_cache::initialize()
{
const auto _main = fxm::get<ppu_module>();
const std::string ppu_cache = Emu.PPUCache();
if (!_main || !g_cfg.core.spu_shared_runtime)
if (ppu_cache.empty() || !g_cfg.core.spu_shared_runtime)
{
return;
}
// SPU cache file (version + block size type)
const std::string loc = _main->cache + "spu-" + fmt::to_lower(g_cfg.core.spu_block_size.to_string()) + "-v1-tane.dat";
const std::string loc = ppu_cache + "spu-" + fmt::to_lower(g_cfg.core.spu_block_size.to_string()) + "-v1-tane.dat";
auto cache = std::make_shared<spu_cache>(loc);
@ -1525,7 +1524,7 @@ public:
m_map[std::vector<u32>()] = &spu_recompiler_base::dispatch;
// Clear LLVM output
m_cache_path = fxm::check_unlocked<ppu_module>()->cache;
m_cache_path = Emu.PPUCache();
fs::create_dir(m_cache_path + "llvm/");
fs::remove_all(m_cache_path + "llvm/", false);