diff options
Diffstat (limited to 'src/video_core')
4 files changed, 30 insertions, 30 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp b/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp index 2dcc2b0eb..52fbab3c1 100644 --- a/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp +++ b/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp | |||
| @@ -73,7 +73,7 @@ ShaderDiskCacheEntry::ShaderDiskCacheEntry() = default; | |||
| 73 | 73 | ||
| 74 | ShaderDiskCacheEntry::~ShaderDiskCacheEntry() = default; | 74 | ShaderDiskCacheEntry::~ShaderDiskCacheEntry() = default; |
| 75 | 75 | ||
| 76 | bool ShaderDiskCacheEntry::Load(FileUtil::IOFile& file) { | 76 | bool ShaderDiskCacheEntry::Load(Common::FS::IOFile& file) { |
| 77 | if (file.ReadBytes(&type, sizeof(u32)) != sizeof(u32)) { | 77 | if (file.ReadBytes(&type, sizeof(u32)) != sizeof(u32)) { |
| 78 | return false; | 78 | return false; |
| 79 | } | 79 | } |
| @@ -144,7 +144,7 @@ bool ShaderDiskCacheEntry::Load(FileUtil::IOFile& file) { | |||
| 144 | return true; | 144 | return true; |
| 145 | } | 145 | } |
| 146 | 146 | ||
| 147 | bool ShaderDiskCacheEntry::Save(FileUtil::IOFile& file) const { | 147 | bool ShaderDiskCacheEntry::Save(Common::FS::IOFile& file) const { |
| 148 | if (file.WriteObject(static_cast<u32>(type)) != 1 || | 148 | if (file.WriteObject(static_cast<u32>(type)) != 1 || |
| 149 | file.WriteObject(static_cast<u32>(code.size())) != 1 || | 149 | file.WriteObject(static_cast<u32>(code.size())) != 1 || |
| 150 | file.WriteObject(static_cast<u32>(code_b.size())) != 1) { | 150 | file.WriteObject(static_cast<u32>(code_b.size())) != 1) { |
| @@ -217,7 +217,7 @@ std::optional<std::vector<ShaderDiskCacheEntry>> ShaderDiskCacheOpenGL::LoadTran | |||
| 217 | return {}; | 217 | return {}; |
| 218 | } | 218 | } |
| 219 | 219 | ||
| 220 | FileUtil::IOFile file(GetTransferablePath(), "rb"); | 220 | Common::FS::IOFile file(GetTransferablePath(), "rb"); |
| 221 | if (!file.IsOpen()) { | 221 | if (!file.IsOpen()) { |
| 222 | LOG_INFO(Render_OpenGL, "No transferable shader cache found"); | 222 | LOG_INFO(Render_OpenGL, "No transferable shader cache found"); |
| 223 | is_usable = true; | 223 | is_usable = true; |
| @@ -262,7 +262,7 @@ std::vector<ShaderDiskCachePrecompiled> ShaderDiskCacheOpenGL::LoadPrecompiled() | |||
| 262 | return {}; | 262 | return {}; |
| 263 | } | 263 | } |
| 264 | 264 | ||
| 265 | FileUtil::IOFile file(GetPrecompiledPath(), "rb"); | 265 | Common::FS::IOFile file(GetPrecompiledPath(), "rb"); |
| 266 | if (!file.IsOpen()) { | 266 | if (!file.IsOpen()) { |
| 267 | LOG_INFO(Render_OpenGL, "No precompiled shader cache found"); | 267 | LOG_INFO(Render_OpenGL, "No precompiled shader cache found"); |
| 268 | return {}; | 268 | return {}; |
| @@ -279,7 +279,7 @@ std::vector<ShaderDiskCachePrecompiled> ShaderDiskCacheOpenGL::LoadPrecompiled() | |||
| 279 | } | 279 | } |
| 280 | 280 | ||
| 281 | std::optional<std::vector<ShaderDiskCachePrecompiled>> ShaderDiskCacheOpenGL::LoadPrecompiledFile( | 281 | std::optional<std::vector<ShaderDiskCachePrecompiled>> ShaderDiskCacheOpenGL::LoadPrecompiledFile( |
| 282 | FileUtil::IOFile& file) { | 282 | Common::FS::IOFile& file) { |
| 283 | // Read compressed file from disk and decompress to virtual precompiled cache file | 283 | // Read compressed file from disk and decompress to virtual precompiled cache file |
| 284 | std::vector<u8> compressed(file.GetSize()); | 284 | std::vector<u8> compressed(file.GetSize()); |
| 285 | file.ReadBytes(compressed.data(), compressed.size()); | 285 | file.ReadBytes(compressed.data(), compressed.size()); |
| @@ -317,7 +317,7 @@ std::optional<std::vector<ShaderDiskCachePrecompiled>> ShaderDiskCacheOpenGL::Lo | |||
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | void ShaderDiskCacheOpenGL::InvalidateTransferable() { | 319 | void ShaderDiskCacheOpenGL::InvalidateTransferable() { |
| 320 | if (!FileUtil::Delete(GetTransferablePath())) { | 320 | if (!Common::FS::Delete(GetTransferablePath())) { |
| 321 | LOG_ERROR(Render_OpenGL, "Failed to invalidate transferable file={}", | 321 | LOG_ERROR(Render_OpenGL, "Failed to invalidate transferable file={}", |
| 322 | GetTransferablePath()); | 322 | GetTransferablePath()); |
| 323 | } | 323 | } |
| @@ -328,7 +328,7 @@ void ShaderDiskCacheOpenGL::InvalidatePrecompiled() { | |||
| 328 | // Clear virtaul precompiled cache file | 328 | // Clear virtaul precompiled cache file |
| 329 | precompiled_cache_virtual_file.Resize(0); | 329 | precompiled_cache_virtual_file.Resize(0); |
| 330 | 330 | ||
| 331 | if (!FileUtil::Delete(GetPrecompiledPath())) { | 331 | if (!Common::FS::Delete(GetPrecompiledPath())) { |
| 332 | LOG_ERROR(Render_OpenGL, "Failed to invalidate precompiled file={}", GetPrecompiledPath()); | 332 | LOG_ERROR(Render_OpenGL, "Failed to invalidate precompiled file={}", GetPrecompiledPath()); |
| 333 | } | 333 | } |
| 334 | } | 334 | } |
| @@ -344,7 +344,7 @@ void ShaderDiskCacheOpenGL::SaveEntry(const ShaderDiskCacheEntry& entry) { | |||
| 344 | return; | 344 | return; |
| 345 | } | 345 | } |
| 346 | 346 | ||
| 347 | FileUtil::IOFile file = AppendTransferableFile(); | 347 | Common::FS::IOFile file = AppendTransferableFile(); |
| 348 | if (!file.IsOpen()) { | 348 | if (!file.IsOpen()) { |
| 349 | return; | 349 | return; |
| 350 | } | 350 | } |
| @@ -386,15 +386,15 @@ void ShaderDiskCacheOpenGL::SavePrecompiled(u64 unique_identifier, GLuint progra | |||
| 386 | } | 386 | } |
| 387 | } | 387 | } |
| 388 | 388 | ||
| 389 | FileUtil::IOFile ShaderDiskCacheOpenGL::AppendTransferableFile() const { | 389 | Common::FS::IOFile ShaderDiskCacheOpenGL::AppendTransferableFile() const { |
| 390 | if (!EnsureDirectories()) { | 390 | if (!EnsureDirectories()) { |
| 391 | return {}; | 391 | return {}; |
| 392 | } | 392 | } |
| 393 | 393 | ||
| 394 | const auto transferable_path{GetTransferablePath()}; | 394 | const auto transferable_path{GetTransferablePath()}; |
| 395 | const bool existed = FileUtil::Exists(transferable_path); | 395 | const bool existed = Common::FS::Exists(transferable_path); |
| 396 | 396 | ||
| 397 | FileUtil::IOFile file(transferable_path, "ab"); | 397 | Common::FS::IOFile file(transferable_path, "ab"); |
| 398 | if (!file.IsOpen()) { | 398 | if (!file.IsOpen()) { |
| 399 | LOG_ERROR(Render_OpenGL, "Failed to open transferable cache in path={}", transferable_path); | 399 | LOG_ERROR(Render_OpenGL, "Failed to open transferable cache in path={}", transferable_path); |
| 400 | return {}; | 400 | return {}; |
| @@ -426,7 +426,7 @@ void ShaderDiskCacheOpenGL::SaveVirtualPrecompiledFile() { | |||
| 426 | Common::Compression::CompressDataZSTDDefault(uncompressed.data(), uncompressed.size()); | 426 | Common::Compression::CompressDataZSTDDefault(uncompressed.data(), uncompressed.size()); |
| 427 | 427 | ||
| 428 | const auto precompiled_path{GetPrecompiledPath()}; | 428 | const auto precompiled_path{GetPrecompiledPath()}; |
| 429 | FileUtil::IOFile file(precompiled_path, "wb"); | 429 | Common::FS::IOFile file(precompiled_path, "wb"); |
| 430 | 430 | ||
| 431 | if (!file.IsOpen()) { | 431 | if (!file.IsOpen()) { |
| 432 | LOG_ERROR(Render_OpenGL, "Failed to open precompiled cache in path={}", precompiled_path); | 432 | LOG_ERROR(Render_OpenGL, "Failed to open precompiled cache in path={}", precompiled_path); |
| @@ -440,24 +440,24 @@ void ShaderDiskCacheOpenGL::SaveVirtualPrecompiledFile() { | |||
| 440 | 440 | ||
| 441 | bool ShaderDiskCacheOpenGL::EnsureDirectories() const { | 441 | bool ShaderDiskCacheOpenGL::EnsureDirectories() const { |
| 442 | const auto CreateDir = [](const std::string& dir) { | 442 | const auto CreateDir = [](const std::string& dir) { |
| 443 | if (!FileUtil::CreateDir(dir)) { | 443 | if (!Common::FS::CreateDir(dir)) { |
| 444 | LOG_ERROR(Render_OpenGL, "Failed to create directory={}", dir); | 444 | LOG_ERROR(Render_OpenGL, "Failed to create directory={}", dir); |
| 445 | return false; | 445 | return false; |
| 446 | } | 446 | } |
| 447 | return true; | 447 | return true; |
| 448 | }; | 448 | }; |
| 449 | 449 | ||
| 450 | return CreateDir(FileUtil::GetUserPath(FileUtil::UserPath::ShaderDir)) && | 450 | return CreateDir(Common::FS::GetUserPath(Common::FS::UserPath::ShaderDir)) && |
| 451 | CreateDir(GetBaseDir()) && CreateDir(GetTransferableDir()) && | 451 | CreateDir(GetBaseDir()) && CreateDir(GetTransferableDir()) && |
| 452 | CreateDir(GetPrecompiledDir()); | 452 | CreateDir(GetPrecompiledDir()); |
| 453 | } | 453 | } |
| 454 | 454 | ||
| 455 | std::string ShaderDiskCacheOpenGL::GetTransferablePath() const { | 455 | std::string ShaderDiskCacheOpenGL::GetTransferablePath() const { |
| 456 | return FileUtil::SanitizePath(GetTransferableDir() + DIR_SEP_CHR + GetTitleID() + ".bin"); | 456 | return Common::FS::SanitizePath(GetTransferableDir() + DIR_SEP_CHR + GetTitleID() + ".bin"); |
| 457 | } | 457 | } |
| 458 | 458 | ||
| 459 | std::string ShaderDiskCacheOpenGL::GetPrecompiledPath() const { | 459 | std::string ShaderDiskCacheOpenGL::GetPrecompiledPath() const { |
| 460 | return FileUtil::SanitizePath(GetPrecompiledDir() + DIR_SEP_CHR + GetTitleID() + ".bin"); | 460 | return Common::FS::SanitizePath(GetPrecompiledDir() + DIR_SEP_CHR + GetTitleID() + ".bin"); |
| 461 | } | 461 | } |
| 462 | 462 | ||
| 463 | std::string ShaderDiskCacheOpenGL::GetTransferableDir() const { | 463 | std::string ShaderDiskCacheOpenGL::GetTransferableDir() const { |
| @@ -469,7 +469,7 @@ std::string ShaderDiskCacheOpenGL::GetPrecompiledDir() const { | |||
| 469 | } | 469 | } |
| 470 | 470 | ||
| 471 | std::string ShaderDiskCacheOpenGL::GetBaseDir() const { | 471 | std::string ShaderDiskCacheOpenGL::GetBaseDir() const { |
| 472 | return FileUtil::GetUserPath(FileUtil::UserPath::ShaderDir) + DIR_SEP "opengl"; | 472 | return Common::FS::GetUserPath(Common::FS::UserPath::ShaderDir) + DIR_SEP "opengl"; |
| 473 | } | 473 | } |
| 474 | 474 | ||
| 475 | std::string ShaderDiskCacheOpenGL::GetTitleID() const { | 475 | std::string ShaderDiskCacheOpenGL::GetTitleID() const { |
diff --git a/src/video_core/renderer_opengl/gl_shader_disk_cache.h b/src/video_core/renderer_opengl/gl_shader_disk_cache.h index a79cef0e9..db2bb73bc 100644 --- a/src/video_core/renderer_opengl/gl_shader_disk_cache.h +++ b/src/video_core/renderer_opengl/gl_shader_disk_cache.h | |||
| @@ -25,7 +25,7 @@ namespace Core { | |||
| 25 | class System; | 25 | class System; |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | namespace FileUtil { | 28 | namespace Common::FS { |
| 29 | class IOFile; | 29 | class IOFile; |
| 30 | } | 30 | } |
| 31 | 31 | ||
| @@ -38,9 +38,9 @@ struct ShaderDiskCacheEntry { | |||
| 38 | ShaderDiskCacheEntry(); | 38 | ShaderDiskCacheEntry(); |
| 39 | ~ShaderDiskCacheEntry(); | 39 | ~ShaderDiskCacheEntry(); |
| 40 | 40 | ||
| 41 | bool Load(FileUtil::IOFile& file); | 41 | bool Load(Common::FS::IOFile& file); |
| 42 | 42 | ||
| 43 | bool Save(FileUtil::IOFile& file) const; | 43 | bool Save(Common::FS::IOFile& file) const; |
| 44 | 44 | ||
| 45 | bool HasProgramA() const { | 45 | bool HasProgramA() const { |
| 46 | return !code.empty() && !code_b.empty(); | 46 | return !code.empty() && !code_b.empty(); |
| @@ -97,10 +97,10 @@ public: | |||
| 97 | private: | 97 | private: |
| 98 | /// Loads the transferable cache. Returns empty on failure. | 98 | /// Loads the transferable cache. Returns empty on failure. |
| 99 | std::optional<std::vector<ShaderDiskCachePrecompiled>> LoadPrecompiledFile( | 99 | std::optional<std::vector<ShaderDiskCachePrecompiled>> LoadPrecompiledFile( |
| 100 | FileUtil::IOFile& file); | 100 | Common::FS::IOFile& file); |
| 101 | 101 | ||
| 102 | /// Opens current game's transferable file and write it's header if it doesn't exist | 102 | /// Opens current game's transferable file and write it's header if it doesn't exist |
| 103 | FileUtil::IOFile AppendTransferableFile() const; | 103 | Common::FS::IOFile AppendTransferableFile() const; |
| 104 | 104 | ||
| 105 | /// Save precompiled header to precompiled_cache_in_memory | 105 | /// Save precompiled header to precompiled_cache_in_memory |
| 106 | void SavePrecompiledHeaderToVirtualPrecompiledCache(); | 106 | void SavePrecompiledHeaderToVirtualPrecompiledCache(); |
diff --git a/src/video_core/renderer_vulkan/nsight_aftermath_tracker.cpp b/src/video_core/renderer_vulkan/nsight_aftermath_tracker.cpp index 435c8c1b8..5b01020ec 100644 --- a/src/video_core/renderer_vulkan/nsight_aftermath_tracker.cpp +++ b/src/video_core/renderer_vulkan/nsight_aftermath_tracker.cpp | |||
| @@ -65,10 +65,10 @@ bool NsightAftermathTracker::Initialize() { | |||
| 65 | return false; | 65 | return false; |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | dump_dir = FileUtil::GetUserPath(FileUtil::UserPath::LogDir) + "gpucrash"; | 68 | dump_dir = Common::FS::GetUserPath(Common::FS::UserPath::LogDir) + "gpucrash"; |
| 69 | 69 | ||
| 70 | (void)FileUtil::DeleteDirRecursively(dump_dir); | 70 | (void)Common::FS::DeleteDirRecursively(dump_dir); |
| 71 | if (!FileUtil::CreateDir(dump_dir)) { | 71 | if (!Common::FS::CreateDir(dump_dir)) { |
| 72 | LOG_ERROR(Render_Vulkan, "Failed to create Nsight Aftermath dump directory"); | 72 | LOG_ERROR(Render_Vulkan, "Failed to create Nsight Aftermath dump directory"); |
| 73 | return false; | 73 | return false; |
| 74 | } | 74 | } |
| @@ -106,7 +106,7 @@ void NsightAftermathTracker::SaveShader(const std::vector<u32>& spirv) const { | |||
| 106 | return; | 106 | return; |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | FileUtil::IOFile file(fmt::format("{}/source_{:016x}.spv", dump_dir, hash.hash), "wb"); | 109 | Common::FS::IOFile file(fmt::format("{}/source_{:016x}.spv", dump_dir, hash.hash), "wb"); |
| 110 | if (!file.IsOpen()) { | 110 | if (!file.IsOpen()) { |
| 111 | LOG_ERROR(Render_Vulkan, "Failed to dump SPIR-V module with hash={:016x}", hash.hash); | 111 | LOG_ERROR(Render_Vulkan, "Failed to dump SPIR-V module with hash={:016x}", hash.hash); |
| 112 | return; | 112 | return; |
| @@ -156,12 +156,12 @@ void NsightAftermathTracker::OnGpuCrashDumpCallback(const void* gpu_crash_dump, | |||
| 156 | }(); | 156 | }(); |
| 157 | 157 | ||
| 158 | std::string_view dump_view(static_cast<const char*>(gpu_crash_dump), gpu_crash_dump_size); | 158 | std::string_view dump_view(static_cast<const char*>(gpu_crash_dump), gpu_crash_dump_size); |
| 159 | if (FileUtil::WriteStringToFile(false, base_name, dump_view) != gpu_crash_dump_size) { | 159 | if (Common::FS::WriteStringToFile(false, base_name, dump_view) != gpu_crash_dump_size) { |
| 160 | LOG_ERROR(Render_Vulkan, "Failed to write dump file"); | 160 | LOG_ERROR(Render_Vulkan, "Failed to write dump file"); |
| 161 | return; | 161 | return; |
| 162 | } | 162 | } |
| 163 | const std::string_view json_view(json.data(), json.size()); | 163 | const std::string_view json_view(json.data(), json.size()); |
| 164 | if (FileUtil::WriteStringToFile(true, base_name + ".json", json_view) != json.size()) { | 164 | if (Common::FS::WriteStringToFile(true, base_name + ".json", json_view) != json.size()) { |
| 165 | LOG_ERROR(Render_Vulkan, "Failed to write JSON"); | 165 | LOG_ERROR(Render_Vulkan, "Failed to write JSON"); |
| 166 | return; | 166 | return; |
| 167 | } | 167 | } |
| @@ -180,7 +180,7 @@ void NsightAftermathTracker::OnShaderDebugInfoCallback(const void* shader_debug_ | |||
| 180 | 180 | ||
| 181 | const std::string path = | 181 | const std::string path = |
| 182 | fmt::format("{}/shader_{:016x}{:016x}.nvdbg", dump_dir, identifier.id[0], identifier.id[1]); | 182 | fmt::format("{}/shader_{:016x}{:016x}.nvdbg", dump_dir, identifier.id[0], identifier.id[1]); |
| 183 | FileUtil::IOFile file(path, "wb"); | 183 | Common::FS::IOFile file(path, "wb"); |
| 184 | if (!file.IsOpen()) { | 184 | if (!file.IsOpen()) { |
| 185 | LOG_ERROR(Render_Vulkan, "Failed to create file {}", path); | 185 | LOG_ERROR(Render_Vulkan, "Failed to create file {}", path); |
| 186 | return; | 186 | return; |
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp index 2258479f5..0c62c8061 100644 --- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp +++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp | |||
| @@ -78,7 +78,7 @@ Common::DynamicLibrary OpenVulkanLibrary() { | |||
| 78 | if (!libvulkan_env || !library.Open(libvulkan_env)) { | 78 | if (!libvulkan_env || !library.Open(libvulkan_env)) { |
| 79 | // Use the libvulkan.dylib from the application bundle. | 79 | // Use the libvulkan.dylib from the application bundle. |
| 80 | const std::string filename = | 80 | const std::string filename = |
| 81 | FileUtil::GetBundleDirectory() + "/Contents/Frameworks/libvulkan.dylib"; | 81 | Common::FS::GetBundleDirectory() + "/Contents/Frameworks/libvulkan.dylib"; |
| 82 | library.Open(filename.c_str()); | 82 | library.Open(filename.c_str()); |
| 83 | } | 83 | } |
| 84 | #else | 84 | #else |