An Exynos with a Mali is a Mali, not an Xclipse

The system route took vulkan.samsung.so as Samsung's Xclipse, but an Exynos 1280/1380 (Galaxy Tab
S9 FE: Mali-G68) may name its HAL the same; with /dev/mali0 present that HAL is not the system
route's, and the device is detected as the Mali it is. The chip table adds the Exynos 1380 and
1280 (s5e8835, s5e8825: Mali-G68).
This commit is contained in:
The412Banner committed 2026-10-12 20:15:47 -04:00
1 parent 39631f30c8
commit d1773ee30f
3 files changed
+13 -2

No files matched your search

@@ -181,6 +181,7 @@ data class GpuInfo(
"mt6833" to "Mali-G57", "mt6835" to "Mali-G57", "mt6789" to "Mali-G57", "mt6785" to "Mali-G76",
"mt6781" to "Mali-G52", "mt6769" to "Mali-G52", "mt8192" to "Mali-G57", "mt8195" to "Mali-G57",
"gs101" to "Mali-G78", "gs201" to "Mali-G710", "zuma" to "Mali-G715", "zumapro" to "Mali-G715",
"s5e8835" to "Mali-G68", "s5e8825" to "Mali-G68",
)
/** The Mali [ids] name a chip of, "Mali-G720 (by chip mt6989)", or null for an unknown chip. */
@@ -43,9 +43,16 @@ public final class SystemVulkanDriver {
private SystemVulkanDriver() {}
/** The first vendor HAL present, or null. */
/**
* The first vendor HAL present, or null. An Exynos with a Mali (Exynos 1280/1380: /dev/mali0)
* may name its HAL vulkan.samsung.so too; that is a Mali, not an Xclipse, and is not taken.
*/
public static String hal() {
for (String path : HALS) if (new File(path).isFile()) return path;
for (String path : HALS) {
if (!new File(path).isFile()) continue;
if (path.endsWith("/vulkan.samsung.so") && new File("/dev/mali0").exists()) continue;
return path;
}
return null;
}
@@ -225,6 +225,9 @@ class DriverPairsTest {
assertEquals("Mali-G720 (by chip mt6989)", GpuInfo.maliOfSoc(listOf("", "mt6989")))
assertEquals("Mali-G710 (by chip gs201)", GpuInfo.maliOfSoc(listOf("GS201")))
assertEquals(null, GpuInfo.maliOfSoc(listOf("unknown-chip")))
// An Exynos with a Mali, and a Helio G99, by board name.
assertEquals(Family.MALI_JM, GpuInfo.familyOf(false, 0, mali = GpuInfo.maliOfSoc(listOf("s5e8835"))))
assertEquals(Family.MALI_JM, GpuInfo.familyOf(false, 0, mali = GpuInfo.maliOfSoc(listOf("MT6789"))))
assertEquals(Family.MALI_G720, GpuInfo.familyOf(false, 0, mali = "Mali-G720 (by chip mt6989)"))
assertEquals(Family.MALI_LATEST, GpuInfo.familyOf(false, 0, mali = "Mali-G925 (by chip mt6991)"))
assertTrue(GpuInfo.maliKbaseCovered("Mali-G720 (by chip mt6989)"))