summaryrefslogtreecommitdiff
path: root/Source/Core/Common/FileUtil.cpp
diff options
context:
space:
mode:
authorRobin Kertels <robin.kertels@gmail.com>2023-06-01 00:05:06 +0200
committerRobin Kertels <robin.kertels@gmail.com>2023-06-11 13:52:34 +0200
commit23bebc5270bfd5a149aeb8bb5a3a2dd4433bd5e1 (patch)
tree45e378d45f19381a1a92a5e71ee38780f78cc687 /Source/Core/Common/FileUtil.cpp
parent35bb663c2abfba0208931b85d779ed5a0084c7e8 (diff)
VideoBackends:Vulkan: Allow loading custom drivers on Android
... using libadrenotools
Diffstat (limited to 'Source/Core/Common/FileUtil.cpp')
-rw-r--r--Source/Core/Common/FileUtil.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp
index 9a494ab2e0..f5842c14f9 100644
--- a/Source/Core/Common/FileUtil.cpp
+++ b/Source/Core/Common/FileUtil.cpp
@@ -66,6 +66,8 @@ namespace File
{
#ifdef ANDROID
static std::string s_android_sys_directory;
+static std::string s_android_driver_directory;
+static std::string s_android_lib_directory;
#endif
#ifdef __APPLE__
@@ -796,6 +798,34 @@ void SetSysDirectory(const std::string& path)
s_android_sys_directory);
s_android_sys_directory = path;
}
+
+void SetGpuDriverDirectories(const std::string& path, const std::string& lib_path)
+{
+ INFO_LOG_FMT(COMMON, "Setting Driver directory to {} and library path to {}", path, lib_path);
+ ASSERT_MSG(COMMON, s_android_driver_directory.empty(), "Driver directory already set to {}",
+ s_android_driver_directory);
+ ASSERT_MSG(COMMON, s_android_lib_directory.empty(), "Library directory already set to {}",
+ s_android_lib_directory);
+ s_android_driver_directory = path;
+ s_android_lib_directory = lib_path;
+}
+
+const std::string GetGpuDriverDirectory(unsigned int dir_index)
+{
+ switch (dir_index)
+ {
+ case D_GPU_DRIVERS_EXTRACTED:
+ return s_android_driver_directory + DIR_SEP GPU_DRIVERS_EXTRACTED DIR_SEP;
+ case D_GPU_DRIVERS_TMP:
+ return s_android_driver_directory + DIR_SEP GPU_DRIVERS_TMP DIR_SEP;
+ case D_GPU_DRIVERS_HOOKS:
+ return s_android_lib_directory;
+ case D_GPU_DRIVERS_FILE_REDIRECT:
+ return s_android_driver_directory + DIR_SEP GPU_DRIVERS_FILE_REDIRECT DIR_SEP;
+ }
+ return "";
+}
+
#endif
static std::string s_user_paths[NUM_PATH_INDICES];