]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: capabilities: Un-retire QEMU_CAPS_EGL_HEADLESS
authorPeter Krempa <pkrempa@redhat.com>
Tue, 15 Jun 2021 09:38:26 +0000 (11:38 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 18 Jun 2021 07:16:16 +0000 (09:16 +0200)
egl-headless graphics can be compiled out in qemu so we need to be able
to know whether the given qemu version support it.

Base the capability on the presence of the 'egl-headless' member in
'query-display-options' or imply it if 'query-display-options' is not
supported as we implied it before for all versions.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
40 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_capabilities.h
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.riscv32.xml
tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml
tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml
tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml
tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml
tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml
tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml
tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml
tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml

index 059d6badf22f9bacc6f90aef9679308ba1ae7c5f..a1f1a2b23e4d315a6b80eb44855997c67ac3dbbd 100644 (file)
@@ -1577,6 +1577,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
     { "blockdev-backup", QEMU_CAPS_BLOCKDEV_BACKUP },
     { "object-add/arg-type/qom-type/^secret", QEMU_CAPS_OBJECT_QAPIFIED },
     { "query-display-options/ret-type/+sdl", QEMU_CAPS_SDL },
+    { "query-display-options/ret-type/+egl-headless", QEMU_CAPS_EGL_HEADLESS },
 };
 
 typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
@@ -5145,8 +5146,10 @@ virQEMUCapsInitProcessCaps(virQEMUCaps *qemuCaps)
 {
     /* versions prior to the introduction of 'query-display-options' had SDL
      * mostly compiled in */
-    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_DISPLAY_OPTIONS))
+    if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_DISPLAY_OPTIONS)) {
         virQEMUCapsSet(qemuCaps, QEMU_CAPS_SDL);
+        virQEMUCapsSet(qemuCaps, QEMU_CAPS_EGL_HEADLESS);
+    }
 
     if (ARCH_IS_X86(qemuCaps->arch) &&
         virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION)) {
index b2878312acd4fdec06da0fe0bbbb5309d047f9f5..7944b9170a84d8de50ecbe271ce266f872122363 100644 (file)
@@ -483,7 +483,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */
     /* 310 */
     QEMU_CAPS_MACHINE_PSERIES_CAP_HTM, /* -machine pseries.cap-htm */
     QEMU_CAPS_USB_STORAGE_WERROR, /* -device usb-storage,werror=..,rerror=.. */
-    X_QEMU_CAPS_EGL_HEADLESS, /* -display egl-headless */
+    QEMU_CAPS_EGL_HEADLESS, /* -display egl-headless */
     QEMU_CAPS_VFIO_PCI_DISPLAY, /* -device vfio-pci.display */
     QEMU_CAPS_BLOCKDEV, /* -blockdev and blockdev-add are supported */
 
index 5cedec5e777586106f234bffe5c3ecdb77011a1f..9029a4e8324b2a0914bb69eebc6984864d2f0128 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <flag name='zpci'/>
   <flag name='iothread.poll-max-ns'/>
   <flag name='query-cpu-model-baseline'/>
index d7b447692a43e7bb4b593259d9c4b513e3fe3f4d..37fb33e8e3154efbdb7c7b26a8ef335a49e5bd7d 100644 (file)
   <flag name='tpm-emulator'/>
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
+  <flag name='egl-headless'/>
   <flag name='iothread.poll-max-ns'/>
   <flag name='x86-max-cpu'/>
   <flag name='i8042'/>
index 291fdd95b3a9ab678a81aa7a8fd131151201b525..a903b46ea1c43275bc7dd4a336e7db817adf618d 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 53bd692fbfe42ed655af27cf006b3d3d60c2604d..898156938b7c4459271f821fa9835e26d802b734 100644 (file)
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
   <flag name='machine.pseries.cap-htm'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 5afa0e7d0cd544647dee2ec4137b8d010779208f..8d1e21c2a21c2ef9c91408225ab66eccd902bbf2 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='zpci'/>
   <flag name='memory-backend-memfd'/>
index 1d25f2c3fa31d7ace804a3e2390e6401ea49b72e..37aaabe0d3d02bd8b900138e57a3baab328a492a 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='sev-guest'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index c6eea904e09d411eb036174d7a026c56eac35f65..a733043b0a36fc70137677da2c54f24fad6d3858 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'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 710687d3169c03c477e7f35da1cd1311c35b3a09..9b486cdbbc788576519b801851b65075208b0552 100644 (file)
@@ -81,6 +81,7 @@
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index 4d9290c482966b3153bed6606a1d080e29c46746..8e895302c2272f7b7721a2bf91f252a538e3406d 100644 (file)
@@ -81,6 +81,7 @@
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
   <flag name='iothread.poll-max-ns'/>
index b0083189e138ade8a2a8af2ea865017c736a0459..dfc1ce8fa740bafc440888436662737492571cb9 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='zpci'/>
   <flag name='memory-backend-memfd'/>
index 6d064953fa3095e8805270026992f5ba01425e24..f45fd84aaa563719dca5dad164a0afdd4868b884 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 56c71d45ac01b89267c2d6befefb9ae0b79b5ef6..d04834970d381100a339e15446c94a83a5b3468f 100644 (file)
   <flag name='machine.pseries.cap-hpt-max-page-size'/>
   <flag name='machine.pseries.cap-htm'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 3fb8115b64157b270ec265b7cf408b4f57579b24..dcc5f6f137b0a9ed03c9d5e362373565844f12bd 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 4239da6d7afc7ccb27f5c3ba56fb9175e99b14ef..2586f692fa78083def9f4215e11adc34e5c268e8 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index fd96361a3e913a502d6f4fb2e2e9c1c0b6372ae3..f408805d296ad77cfd5fdd2a24c444574ed8d414 100644 (file)
   <flag name='machine.pseries.cap-hpt-max-page-size'/>
   <flag name='machine.pseries.cap-htm'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 3d5fe67c2ba68e4a39e493d76f2798bf0bd97bce..8a6c02d575960d39abbfb43a40b976a40799066c 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 08307660ad9e2b1e55362ff136890c04f411f8ab..3be1d41c4e71739696affa7939f6b56c98945b13 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 075dd8a453387293a7d46908de6536e7af037084..3f90bf38eafe130e4b3897697d357d8c3a39f4d4 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='vfio-ap'/>
   <flag name='zpci'/>
index 32a17e50d71a97979ab751a726c3b535597d28fe..7eff08235e70c56858a37bfa6630fd734ea04ff4 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index 83f52ff660c31d52563d90f7ec1d77aa4cea32d4..736b120547555fd6fdeabb4b8594580bff51b060 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index e5cd3336f7c3d35f2c825620d75e774ded09020c..b86a35ffc8211e81604dc20d718cf11ece54ab6f 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index 53588c858aa0f8a453dedbe8ef058461273e28a3..40a25a0092ae7a71b989263dc0460058c6accc4c 100644 (file)
   <flag name='machine.pseries.cap-hpt-max-page-size'/>
   <flag name='machine.pseries.cap-htm'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index cd17f7b58efbe3aed1398d135d0eb8bf0505aa37..5dbb8fbaf184b36ebfe7691637d6c0ff8a690d34 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='vfio-ap'/>
index c6445ce9a578272df23e94784c092a420dc7dd04..8352fd020083a2d945695ee1b70f90768b0fceff 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index a5ee240140737b56e78a66e8c96c84749aefc112..c201c55f1306fcd67a87fe1b659ac98cb29867ad 100644 (file)
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index 0788afdc1205d5f4f822c0c24db9ebce9fe2dbd5..c02998aa67dcc8dc61f2c8d844ce95ffb0cd3891 100644 (file)
   <flag name='machine.pseries.cap-hpt-max-page-size'/>
   <flag name='machine.pseries.cap-htm'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index 9b70bf4f9bf29a12997229284fd7cfad8b8444af..95c0f701243213bee62af373078af0fa2336e95c 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index de7d3a172648e14a556cfc032fda491f87a10d04..6a99f4e343f8b93f57f7f1410c1067effea8cae2 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index 1fe12346fdea774f478978cb2cbf6f349c26b344..9e4f2f7c754a1ed3e51e9e12a95e5b1ca34c4545 100644 (file)
@@ -72,6 +72,7 @@
   <flag name='screendump_device'/>
   <flag name='blockdev-del'/>
   <flag name='chardev-fd-pass'/>
+  <flag name='egl-headless'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
   <flag name='memory-backend-memfd.hugetlb'/>
index b2541a251ce569518b96a1b65b572dd6b92c212c..674d984432614e68c271b963cbec0e45d09c9bcc 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index 0283992fff18c9b5cb9709b0b54c2ae1baf8456c..417be4ec89499ff8a1bf7c3edf1cacfb8229a21e 100644 (file)
   <flag name='chardev-fd-pass'/>
   <flag name='tpm-emulator'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index eadc07bd5fd18a9d90bf4ef90b576c5f34af97be..4202eb050ad836f7aa80fdd33d17b6180ed6dde7 100644 (file)
   <flag name='machine.pseries.cap-hpt-max-page-size'/>
   <flag name='machine.pseries.cap-htm'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index 8a1f84c528e4ab5eb5b3868320f3dc55af2a808e..14098585544f4168ceb816e32e84e350437b415e 100644 (file)
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index b39cd8ba6f6eae6afa59d1c6265f81bbddf316d9..372af710526ba7f3d38bd5c7c14c7e439ab5950a 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='vfio-ap'/>
index 504bc094afa50be9d0817050e38ac6636a699e14..ec3384cab8f222df696ab1baaeb3b67368f6a95c 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index 1a0e75570c33ff8401afdac8adf49f4d3b885729..1806c064c9ce6564204b0d2ec701973baa6d652c 100644 (file)
   <flag name='blockdev-del'/>
   <flag name='vhost-vsock'/>
   <flag name='chardev-fd-pass'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='vfio-ap'/>
index cd21c6c6950bd2a90a0744feaf07cc67b6ccd8e5..d6198c2479095e5866e77206a0dcb7a75707feb7 100644 (file)
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='sev-guest'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>
index 2df9e6f4cbc8c21c4d83e2822eedabf0c2c3afc9..1937b88a4d3648254b8b5bef6e08e9ff6bd0b89a 100644 (file)
   <flag name='mch'/>
   <flag name='mch.extended-tseg-mbytes'/>
   <flag name='usb-storage.werror'/>
+  <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
   <flag name='blockdev'/>
   <flag name='memory-backend-memfd'/>