[PATCH 0/3] qemu: Handle the egl-headless capability properly

Similarly to my previous series dealing with SDL graphics, 'egl-headless' should be getting exactly the same treatment. Peter Krempa (3): qemu: capabilities: Un-retire QEMU_CAPS_EGL_HEADLESS tests: qemuxml2*: Add QEMU_CAPS_EGL_HEADLESS to fake-caps tests using egl-headless graphics qemu: capabilities: Fill SDL graphics support only when it's really supported src/qemu/qemu_capabilities.c | 8 ++++++-- src/qemu/qemu_capabilities.h | 2 +- tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml | 1 + tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml | 1 + tests/qemuxml2argvtest.c | 9 ++++++--- tests/qemuxml2xmltest.c | 8 +++++--- 42 files changed, 56 insertions(+), 9 deletions(-) -- 2.31.1

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> --- src/qemu/qemu_capabilities.c | 5 ++++- src/qemu/qemu_capabilities.h | 2 +- tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml | 1 + tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml | 1 + 40 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 059d6badf2..a1f1a2b23e 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -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)) { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index b2878312ac..7944b9170a 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -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 */ diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml index 5cedec5e77..9029a4e832 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml @@ -101,6 +101,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml index d7b447692a..37fb33e8e3 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml @@ -179,6 +179,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml index 291fdd95b3..a903b46ea1 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml @@ -142,6 +142,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml index 53bd692fbf..898156938b 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml @@ -139,6 +139,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml index 5afa0e7d0c..8d1e21c2a2 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml @@ -108,6 +108,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml index 1d25f2c3fa..37aaabe0d3 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml @@ -183,6 +183,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml index c6eea904e0..a733043b0a 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml @@ -139,6 +139,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml index 710687d316..9b486cdbbc 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml @@ -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'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml index 4d9290c482..8e895302c2 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml @@ -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'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml index b0083189e1..dfc1ce8fa7 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml @@ -110,6 +110,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml index 6d064953fa..f45fd84aaa 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml @@ -185,6 +185,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml index 56c71d45ac..d04834970d 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml @@ -141,6 +141,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml index 3fb8115b64..dcc5f6f137 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml @@ -185,6 +185,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml index 4239da6d7a..2586f692fa 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml @@ -143,6 +143,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml index fd96361a3e..f408805d29 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml @@ -147,6 +147,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml index 3d5fe67c2b..8a6c02d575 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml @@ -146,6 +146,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml index 08307660ad..3be1d41c4e 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml @@ -146,6 +146,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml index 075dd8a453..3f90bf38ea 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml @@ -109,6 +109,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml index 32a17e50d7..7eff08235e 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml @@ -184,6 +184,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml index 83f52ff660..736b120547 100644 --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml @@ -184,6 +184,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml index e5cd3336f7..b86a35ffc8 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml @@ -145,6 +145,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml index 53588c858a..40a25a0092 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -147,6 +147,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml index cd17f7b58e..5dbb8fbaf1 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml @@ -109,6 +109,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml index c6445ce9a5..8352fd0200 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml @@ -185,6 +185,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml index a5ee240140..c201c55f13 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml @@ -148,6 +148,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml index 0788afdc12..c02998aa67 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml @@ -150,6 +150,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml index 9b70bf4f9b..95c0f70124 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml @@ -146,6 +146,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml index de7d3a1726..6a99f4e343 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml @@ -185,6 +185,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml index 1fe12346fd..9e4f2f7c75 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml @@ -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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml index b2541a251c..674d984432 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml @@ -184,6 +184,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml index 0283992fff..417be4ec89 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml @@ -147,6 +147,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml index eadc07bd5f..4202eb050a 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml @@ -148,6 +148,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml index 8a1f84c528..1409858554 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml @@ -144,6 +144,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml index b39cd8ba6f..372af71052 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml @@ -107,6 +107,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml index 504bc094af..ec3384cab8 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml @@ -184,6 +184,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml index 1a0e75570c..1806c064c9 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml @@ -107,6 +107,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml index cd21c6c695..d6198c2479 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml @@ -184,6 +184,7 @@ <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'/> diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml index 2df9e6f4cb..1937b88a4d 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml @@ -182,6 +182,7 @@ <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'/> -- 2.31.1

On 15/06/2021 18.04, Peter Krempa wrote:
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>

Next commit will modify the code so that it validates whether egl-headless is present. Certain tests need to get the egl-headless capability to keep working properly. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- tests/qemuxml2argvtest.c | 9 ++++++--- tests/qemuxml2xmltest.c | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 7fed871c9e..9df28658b9 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1495,7 +1495,8 @@ mymain(void) DO_TEST_CAPS_ARCH_LATEST("disk-arm-virtio-sd", "aarch64"); DO_TEST("graphics-egl-headless", - QEMU_CAPS_DEVICE_CIRRUS_VGA); + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_EGL_HEADLESS); DO_TEST_CAPS_LATEST("graphics-egl-headless"); DO_TEST_CAPS_LATEST("graphics-egl-headless-rendernode"); @@ -1539,7 +1540,8 @@ mymain(void) VIR_FREE(driver.config->vncTLSx509certdir); DO_TEST("graphics-vnc-egl-headless", QEMU_CAPS_VNC, - QEMU_CAPS_DEVICE_CIRRUS_VGA); + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_EGL_HEADLESS); DO_TEST("graphics-sdl", QEMU_CAPS_DEVICE_VGA, QEMU_CAPS_SDL); @@ -1600,7 +1602,8 @@ mymain(void) driver.config->spiceAutoUnixSocket = false; DO_TEST("graphics-spice-egl-headless", QEMU_CAPS_SPICE, - QEMU_CAPS_DEVICE_QXL); + QEMU_CAPS_DEVICE_QXL, + QEMU_CAPS_EGL_HEADLESS); DO_TEST_CAPS_LATEST_PARSE_ERROR("graphics-spice-invalid-egl-headless"); DO_TEST_CAPS_LATEST("graphics-spice-gl-auto-rendernode"); diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 2b37cb839b..40e027aaa4 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -371,7 +371,8 @@ mymain(void) QEMU_CAPS_VNC); DO_TEST("graphics-vnc-egl-headless", QEMU_CAPS_DEVICE_CIRRUS_VGA, - QEMU_CAPS_VNC); + QEMU_CAPS_VNC, + QEMU_CAPS_EGL_HEADLESS); DO_TEST_CAPS_ARCH_LATEST("default-video-type-aarch64", "aarch64"); DO_TEST_CAPS_ARCH_LATEST("default-video-type-ppc64", "ppc64"); @@ -414,12 +415,13 @@ mymain(void) cfg->spiceTLS = false; DO_TEST("graphics-spice-egl-headless", QEMU_CAPS_DEVICE_QXL, - QEMU_CAPS_SPICE); + QEMU_CAPS_SPICE, + QEMU_CAPS_EGL_HEADLESS); DO_TEST("graphics-egl-headless-rendernode", QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_EGL_HEADLESS_RENDERNODE, - QEMU_CAPS_DEVICE_CIRRUS_VGA); + QEMU_CAPS_EGL_HEADLESS); DO_TEST("input-usbmouse", NONE); DO_TEST("input-usbtablet", NONE); -- 2.31.1

On 15/06/2021 18.04, Peter Krempa wrote:
Next commit will modify the code so that it validates whether egl-headless is present. Certain tests need to get the egl-headless capability to keep working properly.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- tests/qemuxml2argvtest.c | 9 ++++++--- tests/qemuxml2xmltest.c | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 7fed871c9e..9df28658b9 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1495,7 +1495,8 @@ mymain(void) DO_TEST_CAPS_ARCH_LATEST("disk-arm-virtio-sd", "aarch64");
DO_TEST("graphics-egl-headless", - QEMU_CAPS_DEVICE_CIRRUS_VGA); + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_EGL_HEADLESS); DO_TEST_CAPS_LATEST("graphics-egl-headless"); DO_TEST_CAPS_LATEST("graphics-egl-headless-rendernode");
@@ -1539,7 +1540,8 @@ mymain(void) VIR_FREE(driver.config->vncTLSx509certdir); DO_TEST("graphics-vnc-egl-headless", QEMU_CAPS_VNC, - QEMU_CAPS_DEVICE_CIRRUS_VGA); + QEMU_CAPS_DEVICE_CIRRUS_VGA, + QEMU_CAPS_EGL_HEADLESS);
DO_TEST("graphics-sdl", QEMU_CAPS_DEVICE_VGA, QEMU_CAPS_SDL); @@ -1600,7 +1602,8 @@ mymain(void) driver.config->spiceAutoUnixSocket = false; DO_TEST("graphics-spice-egl-headless", QEMU_CAPS_SPICE, - QEMU_CAPS_DEVICE_QXL); + QEMU_CAPS_DEVICE_QXL, + QEMU_CAPS_EGL_HEADLESS); DO_TEST_CAPS_LATEST_PARSE_ERROR("graphics-spice-invalid-egl-headless"); DO_TEST_CAPS_LATEST("graphics-spice-gl-auto-rendernode");
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 2b37cb839b..40e027aaa4 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -371,7 +371,8 @@ mymain(void) QEMU_CAPS_VNC); DO_TEST("graphics-vnc-egl-headless", QEMU_CAPS_DEVICE_CIRRUS_VGA, - QEMU_CAPS_VNC); + QEMU_CAPS_VNC, + QEMU_CAPS_EGL_HEADLESS);
DO_TEST_CAPS_ARCH_LATEST("default-video-type-aarch64", "aarch64"); DO_TEST_CAPS_ARCH_LATEST("default-video-type-ppc64", "ppc64"); @@ -414,12 +415,13 @@ mymain(void) cfg->spiceTLS = false; DO_TEST("graphics-spice-egl-headless", QEMU_CAPS_DEVICE_QXL, - QEMU_CAPS_SPICE); + QEMU_CAPS_SPICE, + QEMU_CAPS_EGL_HEADLESS);
DO_TEST("graphics-egl-headless-rendernode", QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_EGL_HEADLESS_RENDERNODE, - QEMU_CAPS_DEVICE_CIRRUS_VGA); + QEMU_CAPS_EGL_HEADLESS);
DO_TEST("input-usbmouse", NONE); DO_TEST("input-usbtablet", NONE);
Reviewed-by: Thomas Huth <thuth@redhat.com>

virQEMUCapsFillDomainDeviceGraphicsCaps fills data needed both for validation of the graphics type and also for correct display in the (dom)capablities XML. Signal the support for SDL only when qemu has the capability. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index a1f1a2b23e..d1cd8f11ac 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6066,7 +6066,8 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps, VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_VNC); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE)) VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SPICE); - VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_EGL_HEADLESS)) + VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS); } -- 2.31.1

On 15/06/2021 18.05, Peter Krempa wrote:
virQEMUCapsFillDomainDeviceGraphicsCaps fills data needed both for validation of the graphics type and also for correct display in the (dom)capablities XML.
Signal the support for SDL only when qemu has the capability.
Please replace SDL here and in the title with egl-headless :-) Thomas
Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index a1f1a2b23e..d1cd8f11ac 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6066,7 +6066,8 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps, VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_VNC); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE)) VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SPICE); - VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_EGL_HEADLESS)) + VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS); }

On Tue, Jun 15, 2021 at 21:40:16 +0200, Thomas Huth wrote:
On 15/06/2021 18.05, Peter Krempa wrote:
virQEMUCapsFillDomainDeviceGraphicsCaps fills data needed both for validation of the graphics type and also for correct display in the (dom)capablities XML.
Signal the support for SDL only when qemu has the capability.
Please replace SDL here and in the title with egl-headless :-)
Oops ... I stole the commit message from the SDL patch and when trying to fix/ammend it I probably re-used the '-c' option again so it has undone my fixes ... sigh. :D
participants (2)
-
Peter Krempa
-
Thomas Huth