[OE-core] [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration

2019-02-22 Thread Alexander Kanavin
Signed-off-by: Alexander Kanavin 
---
 scripts/runqemu | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/scripts/runqemu b/scripts/runqemu
index d171c4f8945..054037312b8 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -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
-- 
2.17.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[OE-core] [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration

2019-02-08 Thread Alexander Kanavin
Signed-off-by: Alexander Kanavin 
---
 scripts/runqemu | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/scripts/runqemu b/scripts/runqemu
index c4a0ca811d9..50888a532e8 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -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
@@ -433,6 +436,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
-- 
2.17.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core