|
|
@ -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); |
|
|
|