]> glassweightruler.freedombox.rocks Git - waydroid.git/commitdiff
gpu: Also mount card node
authorAlessandro Astone <ales.astone@gmail.com>
Thu, 10 Nov 2022 18:17:08 +0000 (19:17 +0100)
committerAlessandro Astone <ales.astone@gmail.com>
Thu, 12 Jan 2023 00:46:48 +0000 (01:46 +0100)
Necessary for minigbm_gbm_mesa

tools/helpers/gpu.py
tools/helpers/lxc.py

index cf88540d11e53c133e66fd1b555aec6534daaf5f..eac31846a87e24471e4bc144a9e8fb6ba8532b34 100644 (file)
@@ -7,12 +7,18 @@ unsupported = ["nvidia", "nouveau"]
 def getKernelDriver(args, dev):
     return tools.helpers.props.file_get(args, "/sys/class/drm/{}/device/uevent".format(dev), "DRIVER")
 
 def getKernelDriver(args, dev):
     return tools.helpers.props.file_get(args, "/sys/class/drm/{}/device/uevent".format(dev), "DRIVER")
 
+def getCardFromRender(args, dev):
+    try:
+        return "/dev/dri/" + os.path.basename(glob.glob("/sys/class/drm/{}/device/drm/card*".format(dev))[0])
+    except IndexError:
+        return ""
+
 def getDriNode(args):
     for node in glob.glob("/dev/dri/renderD*"):
 def getDriNode(args):
     for node in glob.glob("/dev/dri/renderD*"):
-        dev = os.path.basename(node)
-        if getKernelDriver(args, dev) not in unsupported:
-            return node
-    return ""
+        renderDev = os.path.basename(node)
+        if getKernelDriver(args, renderDev) not in unsupported:
+            return node, getCardFromRender(args, renderDev)
+    return "", ""
 
 def getVulkanDriver(args, dev):
     mapping = {
 
 def getVulkanDriver(args, dev):
     mapping = {
index 0808d984a4ae63a3970c7b3292cadb363eda48c7..b7bbf6612492c16b3662c44366f0c400e734696b 100644 (file)
@@ -53,7 +53,9 @@ def generate_nodes_lxc_config(args):
     make_entry("/dev/pvr_sync")
     make_entry("/dev/pmsg0")
     make_entry("/dev/dxg")
     make_entry("/dev/pvr_sync")
     make_entry("/dev/pmsg0")
     make_entry("/dev/dxg")
-    make_entry(tools.helpers.gpu.getDriNode(args), "dev/dri/renderD128")
+    render, card = tools.helpers.gpu.getDriNode(args)
+    make_entry(render, "dev/dri/renderD128")
+    make_entry(card, "dev/dri/card0")
 
     for n in glob.glob("/dev/fb*"):
         make_entry(n)
 
     for n in glob.glob("/dev/fb*"):
         make_entry(n)
@@ -217,7 +219,7 @@ def make_base_props(args):
         props.append("sys.use_memfd=true")
 
     egl = tools.helpers.props.host_get(args, "ro.hardware.egl")
         props.append("sys.use_memfd=true")
 
     egl = tools.helpers.props.host_get(args, "ro.hardware.egl")
-    dri = tools.helpers.gpu.getDriNode(args)
+    dri, _ = tools.helpers.gpu.getDriNode(args)
 
     gralloc = find_hal("gralloc")
     if not gralloc:
 
     gralloc = find_hal("gralloc")
     if not gralloc: