|
|
@ -337,22 +337,19 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading |
|
|
if (title_id == 0) { |
|
|
if (title_id == 0) { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
auto shader_dir{Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir)}; |
|
|
|
|
|
auto base_dir{shader_dir / "vulkan"}; |
|
|
|
|
|
auto transferable_dir{base_dir / "transferable"}; |
|
|
|
|
|
auto precompiled_dir{base_dir / "precompiled"}; |
|
|
|
|
|
if (!Common::FS::CreateDir(shader_dir) || !Common::FS::CreateDir(base_dir) || |
|
|
|
|
|
!Common::FS::CreateDir(transferable_dir) || !Common::FS::CreateDir(precompiled_dir)) { |
|
|
|
|
|
|
|
|
const auto shader_dir{Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir)}; |
|
|
|
|
|
const auto base_dir{shader_dir / fmt::format("{:016x}", title_id)}; |
|
|
|
|
|
if (!Common::FS::CreateDir(shader_dir) || !Common::FS::CreateDir(base_dir)) { |
|
|
LOG_ERROR(Common_Filesystem, "Failed to create pipeline cache directories"); |
|
|
LOG_ERROR(Common_Filesystem, "Failed to create pipeline cache directories"); |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
pipeline_cache_filename = transferable_dir / fmt::format("{:016x}.bin", title_id); |
|
|
|
|
|
|
|
|
pipeline_cache_filename = base_dir / "vulkan.bin"; |
|
|
|
|
|
|
|
|
struct { |
|
|
struct { |
|
|
std::mutex mutex; |
|
|
std::mutex mutex; |
|
|
size_t total{0}; |
|
|
|
|
|
size_t built{0}; |
|
|
|
|
|
bool has_loaded{false}; |
|
|
|
|
|
|
|
|
size_t total{}; |
|
|
|
|
|
size_t built{}; |
|
|
|
|
|
bool has_loaded{}; |
|
|
} state; |
|
|
} state; |
|
|
|
|
|
|
|
|
const auto load_compute{[&](std::ifstream& file, FileEnvironment env) { |
|
|
const auto load_compute{[&](std::ifstream& file, FileEnvironment env) { |
|
|
|