]> glassweightruler.freedombox.rocks Git - waydroid.git/blob - tools/helpers/gpu.py
Re-enable nouveau and nvk
[waydroid.git] / tools / helpers / gpu.py
1 import glob
2 import os
3 import tools.helpers.props
4
5 unsupported = ["nvidia"]
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 "msm_dpu": "freedreno",
31 "vc4": "broadcom",
32 "nouveau": "nouveau",
33 }
34 kernel_driver = getKernelDriver(args, dev)
35 if kernel_driver in mapping:
36 return mapping[kernel_driver]
37 return ""