]> glassweightruler.freedombox.rocks Git - waydroid.git/commitdiff
Default nvidia to swiftshader
authorAlessandro Astone <ales.astone@gmail.com>
Wed, 13 Jul 2022 12:31:58 +0000 (14:31 +0200)
committerErfan Abdi <erfangplus@gmail.com>
Wed, 13 Jul 2022 17:03:33 +0000 (21:33 +0430)
Try to choose a supported gpu on PRIME devices

tools/helpers/__init__.py
tools/helpers/gpu.py [new file with mode: 0644]
tools/helpers/lxc.py

index 20d4d62b1041412766c95e40b65ff06278eac8c8..c3711007f72920bc4a5d74f123ac41e2a95fbb67 100644 (file)
@@ -9,3 +9,4 @@ import tools.helpers.drivers
 import tools.helpers.mount
 import tools.helpers.http
 import tools.helpers.ipc
+import tools.helpers.gpu
diff --git a/tools/helpers/gpu.py b/tools/helpers/gpu.py
new file mode 100644 (file)
index 0000000..5f34656
--- /dev/null
@@ -0,0 +1,13 @@
+import glob
+import os
+import tools.helpers.props
+
+unsupported = ["nvidia"]
+
+def getDriNode(args):
+    for node in glob.glob("/dev/dri/renderD*"):
+        dev = os.path.basename(node)
+        driver = tools.helpers.props.file_get(args, "/sys/class/drm/{}/device/uevent".format(dev), "DRIVER")
+        if driver not in unsupported:
+            return node
+    return ""
index 7a9988e9815ce946e05b210f6c6028a137005982..788f4d60b77f580d788eb9dd44687ca5f9f1eb9f 100644 (file)
@@ -51,7 +51,7 @@ def generate_nodes_lxc_config(args):
     make_entry("/dev/pvr_sync")
     make_entry("/dev/pmsg0")
     make_entry("/dev/dxg")
-    make_entry("/dev/dri", options="bind,create=dir,optional 0 0")
+    make_entry(tools.helpers.gpu.getDriNode(args), "dev/dri/renderD128")
 
     for n in glob.glob("/dev/fb*"):
         make_entry(n)
@@ -180,7 +180,7 @@ def make_base_props(args):
 
     gralloc = find_hal("gralloc")
     if gralloc == "":
-        if os.path.exists("/dev/dri"):
+        if tools.helpers.gpu.getDriNode(args):
             gralloc = "gbm"
             egl = "mesa"
         else: