]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: caps: Introduce a capability for egl-headless
authorErik Skultety <eskultet@redhat.com>
Sat, 30 Jun 2018 14:16:24 +0000 (16:16 +0200)
committerErik Skultety <eskultet@redhat.com>
Wed, 18 Jul 2018 16:15:58 +0000 (18:15 +0200)
Since QEMU 2.10, it's possible to use a new type of display -
egl-headless which uses drm nodes to provide OpenGL support. This patch
adds a capability for that. However, since QEMU doesn't provide a QMP
command to probe it, we have to base the capability on specific QEMU
version.

Acked-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: Erik Skultety <eskultet@redhat.com>
14 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
tests/qemucapabilitiesdata/caps_2.10.0.aarch64.xml
tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml

index 23b483349f5b3abec92a05e960f175f39464710e..df358f89674ce77628a4bc23cff58258ab0f9d61 100644 (file)
@@ -503,6 +503,7 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
               "machine.pseries.cap-hpt-max-page-size",
               "machine.pseries.cap-htm",
               "usb-storage.werror",
+              "egl-headless",
     );
 
 
@@ -4030,6 +4031,11 @@ virQEMUCapsInitQMPMonitor(virQEMUCapsPtr qemuCaps,
         virQEMUCapsSet(qemuCaps, QEMU_CAPS_MACHINE_PSERIES_RESIZE_HPT);
     }
 
+    /* '-display egl-headless' cmdline option is supported since QEMU 2.10, but
+     * there's no way to probe it */
+    if (qemuCaps->version >= 2010000)
+        virQEMUCapsSet(qemuCaps, QEMU_CAPS_EGL_HEADLESS);
+
     /* no way to query for -numa dist */
     if (qemuCaps->version >= 2010000)
         virQEMUCapsSet(qemuCaps, QEMU_CAPS_NUMA_DIST);
index 1fa0ebfea386cce33f8e00e8e7208128b8f4adc5..55221e7e57476907387eb33ec6ef2e0e66d2a0b1 100644 (file)
@@ -487,6 +487,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     QEMU_CAPS_MACHINE_PSERIES_CAP_HPT_MAX_PAGE_SIZE, /* -machine pseries.cap-hpt-max-page-size */
     QEMU_CAPS_MACHINE_PSERIES_CAP_HTM, /* -machine pseries.cap-htm */
     QEMU_CAPS_USB_STORAGE_WERROR, /* -device usb-storage,werror=..,rerror=.. */
+    QEMU_CAPS_EGL_HEADLESS, /* -display egl-headless */
 
     QEMU_CAPS_LAST /* this must always be the last item */
 } virQEMUCapsFlags;
index 169641063cc330b1078a7e7428f08c93831c3167..a70e050765ab3a86d4d17965333aefc17e11ed45 100644 (file)
   <flag name='hda-output'/>
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
+  <flag name='egl-headless'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>307647</microcodeVersion>
index 92c095abd2f75bed147b41337759d61a81565c1e..72709905d82c8397ef5b710b3141d29c2ae8a138 100644 (file)
   <flag name='hda-output'/>
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
+  <flag name='egl-headless'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>386992</microcodeVersion>
index 5e22e21224e598ce51fd0670253e40d6f0a30e34..7347f5683f7fc4cb08327828d63c6ce091d8ad12 100644 (file)
   <flag name='sdl-gl'/>
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
+  <flag name='egl-headless'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>307899</microcodeVersion>
index 10b066bff1ccf346c0ef0b8622f32ec2bc884762..d69a148cd294ab3081a665b82fdc21d0404d1c8f 100644 (file)
   <flag name='vmgenid'/>
   <flag name='vhost-vsock'/>
   <flag name='mch'/>
+  <flag name='egl-headless'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>367995</microcodeVersion>
index 6ca2e57ef8eade3de9bbafc0bf6ff13a9bf8e762..b359f9a049f927103e67e31f19cf857e407aa1e5 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>346751</microcodeVersion>
index c52e44a4980c586f8fa7938fcde919aa227fd900..210f774c4edeeca5f4d779628c731b868ac0ef41 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
+  <flag name='egl-headless'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>371455</microcodeVersion>
index ecc029f403bb0c5e3ddd1f2097bb836dd87ca1fc..80e7afec049aaaeedfdf6bad35c2d1a94d07743e 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>347550</microcodeVersion>
index 7139179304cc3c3902c525420cc3ea764f32bb75..c4b09c00039adc2a0a29a4be9a3d41fb59a95c3c 100644 (file)
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
   <flag name='machine.pseries.cap-htm'/>
+  <flag name='egl-headless'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>428334</microcodeVersion>
index 87d189e58df877845fb7ab2e55b7d90184974f02..1ff2fe45e1f308b22850d908c78d6dae21fe463a 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <version>2012000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>375999</microcodeVersion>
index 9c1f6c327c8fb229102d231513ec5fe4e248dd25..37d17786cf3d8c77289c89809641e17f8bc35f20 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='sev-guest'/>
+  <flag name='egl-headless'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>416196</microcodeVersion>
index 33cd00e6132e29168bd6d2505f1f503c2c962dff..57bf5dba1128551a3e5c3c0a29d4f985c0f87330 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='machine.pseries.cap-hpt-max-page-size'/>
   <flag name='machine.pseries.cap-htm'/>
+  <flag name='egl-headless'/>
   <version>2012050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>446771</microcodeVersion>
index cd036d9323dfeb7f2f0fc665f424f3f14de51841..431910a9e326e2f3a131c2e284b538dc42206846 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='sev-guest'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <version>2012090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>438109</microcodeVersion>