]> glassweightruler.freedombox.rocks Git - waydroid.git/blob - tools/helpers/gpu.py
gpu: Also mount card node
[waydroid.git] / tools / helpers / gpu.py
1 import glob
2 import os
3 import tools.helpers.props
4
5 unsupported = ["nvidia", "nouveau"]
6
7 def getKernelDriver(args, dev):
8 return tools.helpers.props.file_get(args, "/sys/class/drm/{}/device/uevent".format(dev), "DRIVER")
9
10 def getCardFromRender(args, dev):
11 try:
12 return "/dev/dri/" + os.path.basename(glob.glob("/sys/class/drm/{}/device/drm/card*".format(dev))[0])
13 except IndexError:
14 return ""
15
16 def getDriNode(args):
17 for node in glob.glob("/dev/dri/renderD*"):
18 renderDev = os.path.basename(node)
19 if getKernelDriver(args, renderDev) not in unsupported:
20 return node, getCardFromRender(args, renderDev)
21 return "", ""
22
23 def getVulkanDriver(args, dev):
24 mapping = {
25 "i915": "intel",
26 "amdgpu": "radeon",
27 "radeon": "radeon",
28 "panfrost": "panfrost",
29 "msm": "freedreno",
30 "vc4": "broadcom",
31 }
32 kernel_driver = getKernelDriver(args, dev)
33 if kernel_driver in mapping:
34 return mapping[kernel_driver]
35 return ""