runqemu: add options for enabling virgl GL acceleration

(From OE-Core rev: cd4cdecd01c305b83a7483e44edb6ba856821148)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2019-02-22 15:33:45 +01:00
committed by Richard Purdie
parent 1781289b68
commit b253fcb592

View File

@@ -74,6 +74,9 @@ of the following environment variables (in any order):
MACHINE - the machine name (optional, autodetected from KERNEL filename if unspecified)
Simplified QEMU command-line options can be passed with:
nographic - disable video console
gl - enable virgl-based GL acceleration
gl-es - enable virgl-based GL acceleration, using OpenGL ES
egl-headless - enable headless EGL output; use vnc or spice to see it
serial - enable a serial console on /dev/ttyS0
serialstdio - enable a serial console on the console (regardless of graphics mode)
slirp - enable user networking, no root privileges is required
@@ -434,6 +437,26 @@ class BaseConfig(object):
elif arg == 'nographic':
self.qemu_opt_script += ' -nographic'
self.kernel_cmdline_script += ' console=ttyS0'
elif arg == 'gl':
self.qemu_opt_script += ' -vga virtio -display gtk,gl=on'
elif arg == 'gl-es':
self.qemu_opt_script += ' -vga virtio -display gtk,gl=es'
elif arg == 'egl-headless':
self.qemu_opt_script += ' -vga virtio -display egl-headless'
# As runqemu can be run within bitbake (when using testimage, for example),
# we need to ensure that we run host pkg-config, and that it does not
# get mis-directed to native build paths set by bitbake.
try:
del os.environ['PKG_CONFIG_PATH']
del os.environ['PKG_CONFIG_DIR']
del os.environ['PKG_CONFIG_LIBDIR']
except KeyError:
pass
try:
dripath = subprocess.check_output("PATH=/bin:/usr/bin:$PATH pkg-config --variable=dridriverdir dri", shell=True)
except subprocess.CalledProcessError as e:
raise RunQemuError("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.")
os.environ['LIBGL_DRIVERS_PATH'] = dripath.decode('utf-8').strip()
elif arg == 'serial':
self.kernel_cmdline_script += ' console=ttyS0'
self.serialconsole = True