mirror of
https://git.h3cjp.net/H3cJP/citra.git
synced 2024-11-25 21:52:46 +00:00
video_core/vulkan: Driver pipeline cache will now be deleted with the shader cache
This commit is contained in:
parent
8945fafcc0
commit
9c9008ac81
|
@ -2229,8 +2229,10 @@ void GMainWindow::OnGameListRemoveFile(u64 program_id, GameListRemoveTarget targ
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (target) {
|
switch (target) {
|
||||||
case GameListRemoveTarget::GlShaderCache:
|
|
||||||
case GameListRemoveTarget::VkShaderCache:
|
case GameListRemoveTarget::VkShaderCache:
|
||||||
|
RemoveVulkanDriverPipelineCache(program_id);
|
||||||
|
[[fallthrough]];
|
||||||
|
case GameListRemoveTarget::GlShaderCache:
|
||||||
RemoveTransferableShaderCache(program_id, target);
|
RemoveTransferableShaderCache(program_id, target);
|
||||||
break;
|
break;
|
||||||
case GameListRemoveTarget::AllShaderCache:
|
case GameListRemoveTarget::AllShaderCache:
|
||||||
|
@ -2271,6 +2273,22 @@ void GMainWindow::RemoveTransferableShaderCache(u64 program_id, GameListRemoveTa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GMainWindow::RemoveVulkanDriverPipelineCache(u64 program_id) {
|
||||||
|
static constexpr std::string_view target_file_name = "vulkan_pipelines.bin";
|
||||||
|
|
||||||
|
const auto shader_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir);
|
||||||
|
const auto shader_cache_folder_path = shader_cache_dir / fmt::format("{:016x}", program_id);
|
||||||
|
const auto target_file = shader_cache_folder_path / target_file_name;
|
||||||
|
|
||||||
|
if (!Common::FS::Exists(target_file)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!Common::FS::RemoveFile(target_file)) {
|
||||||
|
QMessageBox::warning(this, tr("Error Removing Vulkan Driver Pipeline Cache"),
|
||||||
|
tr("Failed to remove the driver pipeline cache."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void GMainWindow::RemoveAllTransferableShaderCaches(u64 program_id) {
|
void GMainWindow::RemoveAllTransferableShaderCaches(u64 program_id) {
|
||||||
const auto shader_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir);
|
const auto shader_cache_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::ShaderDir);
|
||||||
const auto program_shader_cache_dir = shader_cache_dir / fmt::format("{:016x}", program_id);
|
const auto program_shader_cache_dir = shader_cache_dir / fmt::format("{:016x}", program_id);
|
||||||
|
|
|
@ -347,6 +347,7 @@ private:
|
||||||
void RemoveUpdateContent(u64 program_id, InstalledEntryType type);
|
void RemoveUpdateContent(u64 program_id, InstalledEntryType type);
|
||||||
void RemoveAddOnContent(u64 program_id, InstalledEntryType type);
|
void RemoveAddOnContent(u64 program_id, InstalledEntryType type);
|
||||||
void RemoveTransferableShaderCache(u64 program_id, GameListRemoveTarget target);
|
void RemoveTransferableShaderCache(u64 program_id, GameListRemoveTarget target);
|
||||||
|
void RemoveVulkanDriverPipelineCache(u64 program_id);
|
||||||
void RemoveAllTransferableShaderCaches(u64 program_id);
|
void RemoveAllTransferableShaderCaches(u64 program_id);
|
||||||
void RemoveCustomConfiguration(u64 program_id, const std::string& game_path);
|
void RemoveCustomConfiguration(u64 program_id, const std::string& game_path);
|
||||||
std::optional<u64> SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id);
|
std::optional<u64> SelectRomFSDumpTarget(const FileSys::ContentProvider&, u64 program_id);
|
||||||
|
|
Loading…
Reference in a new issue