From fb349c82684dc57fae0f0828b6a55eddf60dc254 Mon Sep 17 00:00:00 2001 From: Alessandro Astone Date: Wed, 13 Jul 2022 14:31:58 +0200 Subject: [PATCH] Default nvidia to swiftshader Try to choose a supported gpu on PRIME devices --- tools/helpers/__init__.py | 1 + tools/helpers/gpu.py | 13 +++++++++++++ tools/helpers/lxc.py | 4 ++-- 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 tools/helpers/gpu.py diff --git a/tools/helpers/__init__.py b/tools/helpers/__init__.py index 20d4d62..c371100 100644 --- a/tools/helpers/__init__.py +++ b/tools/helpers/__init__.py @@ -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 index 0000000..5f34656 --- /dev/null +++ b/tools/helpers/gpu.py @@ -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 "" diff --git a/tools/helpers/lxc.py b/tools/helpers/lxc.py index 7a9988e..788f4d6 100644 --- a/tools/helpers/lxc.py +++ b/tools/helpers/lxc.py @@ -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: -- 2.47.3