summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2026-10-31 16:39:44 +0100
committerGitHub <noreply@github.com>2026-10-31 16:39:44 +0100
commit613db73aeb2c086a816592df2fb193d73130101b (patch)
tree4529cdfe2da53bb33c04458a84b0d575d305c500 /Source
parentc4856ead6420cceb48744815d79d6be59febb5ff (diff)
parenta8fc326a6b0e9945919b174aed09a9639b5b10a0 (diff)
Merge pull request #14958 from bmdhacks/mali-custom-driver
Vulkan: Allow custom drivers on Mali devices
Diffstat (limited to 'Source')
-rw-r--r--Source/Android/jni/GpuDriver.cpp3
-rw-r--r--Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp9
2 files changed, 10 insertions, 2 deletions
diff --git a/Source/Android/jni/GpuDriver.cpp b/Source/Android/jni/GpuDriver.cpp
index de37ab8d40..3df191ebc7 100644
--- a/Source/Android/jni/GpuDriver.cpp
+++ b/Source/Android/jni/GpuDriver.cpp
@@ -96,7 +96,8 @@ JNIEXPORT jboolean JNICALL
Java_org_dolphinemu_dolphinemu_utils_GpuDriverHelper_00024Companion_supportsCustomDriverLoading(
JNIEnv* env, jobject instance)
{
- // If the KGSL device exists custom drivers can be loaded using adrenotools
+ // If the KGSL (Adreno) or kbase (Mali) device exists custom drivers can be loaded using
+ // adrenotools
return Vulkan::SupportsCustomDriver();
}
diff --git a/Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp b/Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp
index a761a81a3e..ac26cd95ec 100644
--- a/Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp
+++ b/Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp
@@ -254,9 +254,16 @@ static bool CheckKgslPresent()
return access(KgslPath, F_OK) == 0;
}
+static bool CheckKbasePresent()
+{
+ constexpr auto KbasePath{"/dev/mali0"};
+
+ return access(KbasePath, F_OK) == 0;
+}
+
bool SupportsCustomDriver()
{
- return android_get_device_api_level() >= 28 && CheckKgslPresent();
+ return android_get_device_api_level() >= 28 && (CheckKgslPresent() || CheckKbasePresent());
}
#endif