]> glassweightruler.freedombox.rocks Git - waydroid.git/blobdiff - tools/helpers/gpu.py
gpu: Check i915_capabilities for the card node
[waydroid.git] / tools / helpers / gpu.py
index eac31846a87e24471e4bc144a9e8fb6ba8532b34..5db810fb87eb9c430ef5a89a03caedda5b1c90be 100644 (file)
@@ -2,7 +2,10 @@ import glob
 import os
 import tools.helpers.props
 
-unsupported = ["nvidia", "nouveau"]
+unsupported = ["nvidia"]
+
+def getMinor(args, dev):
+    return tools.helpers.props.file_get(args, "/sys/class/drm/{}/uevent".format(dev), "MINOR")
 
 def getKernelDriver(args, dev):
     return tools.helpers.props.file_get(args, "/sys/class/drm/{}/device/uevent".format(dev), "DRIVER")
@@ -27,9 +30,22 @@ def getVulkanDriver(args, dev):
         "radeon": "radeon",
         "panfrost": "panfrost",
         "msm": "freedreno",
+        "msm_dpu": "freedreno",
         "vc4": "broadcom",
+        "nouveau": "nouveau",
     }
     kernel_driver = getKernelDriver(args, dev)
+
+    if kernel_driver == "i915":
+        try:
+            dev = os.path.basename(getCardFromRender(args, dev))
+            gen = tools.helpers.run.user(args,["awk", "/^graphics version:|^gen:/ {print $NF}",
+                "/sys/kernel/debug/dri/{}/i915_capabilities".format(getMinor(args, dev))], output_return=True, check=False)
+            if int(gen) < 9:
+                return "intel_hasvk"
+        except:
+            pass
+
     if kernel_driver in mapping:
         return mapping[kernel_driver]
     return ""