summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Kanavin <alex.kanavin@gmail.com>2021-08-22 22:22:58 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-08-23 08:25:53 +0100
commit46a8566183b180422810418a11112c7694d74bdb (patch)
treec310587d38646c5802bb13e17d51cdbfaf1611aa
parent6f4afe940c90be9d03041a54f320719508cb14cc (diff)
downloadpoky-46a8566183b180422810418a11112c7694d74bdb.tar.gz
qemu: add a hint on how to enable CPU render nodes when a suitable GPU is absent
This is particularly useful for llvm-accelerated GL rendering from qemu guest to an offscreen buffer (accessible over vnc or spice) using llvmpipe on the host, rather than using unaccelerated swrast renderer in the guest. This is the best that can be done in the absence of a host GPU with render node support (such as old Matrox cards common in servers, or fully virtualized cloud environments with no GPU at all). Note: even though NVidia blob drivers do support render nodes, they do not support gbm (yet?), and so rendering will fall back to llvmpipe as well even when the system has a 3000 euro NVidia GPU. Cue Linus picture. (From OE-Core rev: 9b1daa173481f7f560e00e0dc22b4010ff1dc0ec) Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oeqa/selftest/cases/runtime_test.py6
-rwxr-xr-xscripts/runqemu2
2 files changed, 6 insertions, 2 deletions
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py
index 4cfec94d85..129503de63 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -212,12 +212,14 @@ class TestImage(OESelftestTestCase):
212 Author: Alexander Kanavin <alex.kanavin@gmail.com> 212 Author: Alexander Kanavin <alex.kanavin@gmail.com>
213 """ 213 """
214 import subprocess, os 214 import subprocess, os
215
216 render_hint = """If /dev/dri/renderD* is absent due to lack of suitable GPU, 'modprobe vgem' will create one sutable for mesa llvmpipe sofware renderer."""
215 try: 217 try:
216 content = os.listdir("/dev/dri") 218 content = os.listdir("/dev/dri")
217 if len([i for i in content if i.startswith('render')]) == 0: 219 if len([i for i in content if i.startswith('render')]) == 0:
218 self.skipTest("No render nodes found in /dev/dri: %s" %(content)) 220 self.skipTest("No render nodes found in /dev/dri: %s. %s" %(content, render_hint))
219 except FileNotFoundError: 221 except FileNotFoundError:
220 self.skipTest("/dev/dri directory does not exist; no render nodes available on this machine.") 222 self.skipTest("/dev/dri directory does not exist; no render nodes available on this machine. %s" %(render_hint))
221 try: 223 try:
222 dripath = subprocess.check_output("pkg-config --variable=dridriverdir dri", shell=True) 224 dripath = subprocess.check_output("pkg-config --variable=dridriverdir dri", shell=True)
223 except subprocess.CalledProcessError as e: 225 except subprocess.CalledProcessError as e:
diff --git a/scripts/runqemu b/scripts/runqemu
index 0976273eb0..c467b0eb19 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -72,6 +72,8 @@ of the following environment variables (in any order):
72 gl - enable virgl-based GL acceleration (also needs gtk or sdl options) 72 gl - enable virgl-based GL acceleration (also needs gtk or sdl options)
73 gl-es - enable virgl-based GL acceleration, using OpenGL ES (also needs gtk or sdl options) 73 gl-es - enable virgl-based GL acceleration, using OpenGL ES (also needs gtk or sdl options)
74 egl-headless - enable headless EGL output; use vnc (via publicvnc option) or spice to see it 74 egl-headless - enable headless EGL output; use vnc (via publicvnc option) or spice to see it
75 (hint: if /dev/dri/renderD* is absent due to lack of suitable GPU, 'modprobe vgem' will create
76 one sutable for mesa llvmpipe sofware renderer)
75 serial - enable a serial console on /dev/ttyS0 77 serial - enable a serial console on /dev/ttyS0
76 serialstdio - enable a serial console on the console (regardless of graphics mode) 78 serialstdio - enable a serial console on the console (regardless of graphics mode)
77 slirp - enable user networking, no root privileges is required 79 slirp - enable user networking, no root privileges is required