[PATCH 0/4] qemu: Handle the SDL capability properly

Thomas' recent qemu patch strives to add proper detectability of SDL support: https://listman.redhat.com/archives/libvir-list/2021-June/msg00398.html This series is the libvirt counterpart. Note that all capability files we have for now claim support so the actual effect of this patch will be seen just later. Peter Krempa (4): qemu: capabilities: Introduce QEMU_CAPS_QUERY_DISPLAY_OPTIONS qemu: capabilities: Un-retire QEMU_CAPS_SDL tests: qemuxml2*: Add QEMU_CAPS_SDL to fake-caps tests using SDL graphics qemu: capabilities: Fill SDL graphics support only when it's really supported src/qemu/qemu_capabilities.c | 11 ++++++++++- src/qemu/qemu_capabilities.h | 3 ++- 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 | 2 ++ tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml | 2 ++ tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml | 2 ++ tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml | 2 ++ tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml | 2 ++ tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml | 2 ++ tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml | 2 ++ tests/qemuxml2argvtest.c | 9 +++++---- tests/qemuxml2xmltest.c | 7 ++++--- 42 files changed, 85 insertions(+), 9 deletions(-) -- 2.31.1

The command allows to query various display-related options. The absence of the command will be used to imply certain video-related capabilities before we would be able to detect them. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 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 + 28 files changed, 29 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 436fe40f65..2c6cddf2a4 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -635,6 +635,7 @@ VIR_ENUM_IMPL(virQEMUCaps, /* 405 */ "confidential-guest-support", + "query-display-options", ); @@ -1180,6 +1181,7 @@ struct virQEMUCapsStringFlags virQEMUCapsCommands[] = { { "query-cpu-model-baseline", QEMU_CAPS_QUERY_CPU_MODEL_BASELINE }, { "query-cpu-model-comparison", QEMU_CAPS_QUERY_CPU_MODEL_COMPARISON }, { "block-export-add", QEMU_CAPS_BLOCK_EXPORT_ADD }, + { "query-display-options", QEMU_CAPS_QUERY_DISPLAY_OPTIONS }, }; struct virQEMUCapsStringFlags virQEMUCapsMigration[] = { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 8af5251f2e..9572e35c4d 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -615,6 +615,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ /* 405 */ QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT, /* -machine confidential-guest-support */ + QEMU_CAPS_QUERY_DISPLAY_OPTIONS, /* 'query-display-options' qmp command present */ QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml index 82921b85f1..332ab1d130 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml @@ -214,6 +214,7 @@ <flag name='cpu-max'/> <flag name='vnc-opts'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>3000092</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100240</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml index 83aab20633..c6972fb9e5 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml @@ -177,6 +177,7 @@ <flag name='vnc-opts'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>61700240</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml index 52cfe66e70..f8c5ddb099 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml @@ -184,6 +184,7 @@ <flag name='vnc-opts'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>42900240</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml index 1ca04e86c6..804fb07c70 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml @@ -176,6 +176,7 @@ <flag name='vnc-opts'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>0</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml index f0b6c77fb5..42e0f153f3 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml @@ -176,6 +176,7 @@ <flag name='vnc-opts'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>0</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml index 85e0a443b0..cad9606b15 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml @@ -140,6 +140,7 @@ <flag name='vnc-opts'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>39100240</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml index 8f39762b6a..c7ecbfa45a 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml @@ -222,6 +222,7 @@ <flag name='vnc-opts'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100240</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml index a1ae5191c1..970f170f5d 100644 --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml @@ -229,6 +229,7 @@ <flag name='vnc-opts'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4001000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml index 6a2d54d275..e1707b22a5 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml @@ -192,6 +192,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4001050</version> <kvmVersion>0</kvmVersion> <microcodeVersion>61700242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml index 9f228fb4fe..9ca0a6cfde 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -191,6 +191,7 @@ <flag name='audiodev'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4001050</version> <kvmVersion>0</kvmVersion> <microcodeVersion>42900242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml index 088ac794ac..36f4908474 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml @@ -153,6 +153,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4002000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>39100242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml index f7c034bf17..432802f7b2 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml @@ -240,6 +240,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>4002000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml index 331309bbe3..d62fb640a4 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml @@ -202,6 +202,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>61700241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml index 444b7a222f..116ea1d289 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml @@ -210,6 +210,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>42900241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml index 84a57d1e0d..ac41141dea 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml @@ -196,6 +196,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>0</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml index a3d9338e86..7bc91b3070 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml @@ -247,6 +247,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100241</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml index 3075172082..bb1acbf42e 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml @@ -111,6 +111,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5001000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>0</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml index 0dae0ad892..fa86d43e56 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml @@ -249,6 +249,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5001000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml index 7615bd9cb6..86590b8a16 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml @@ -206,6 +206,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5002000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>61700243</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml index ac5667c1a9..12c0ab47b8 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml @@ -212,6 +212,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5002000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>42900243</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml index 192f9bc7d4..457339740a 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml @@ -198,6 +198,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5002000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>0</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml index db72107a0d..816b9a150c 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml @@ -160,6 +160,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5002000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>39100243</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml index 7cfbebe323..5b5bf76355 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml @@ -250,6 +250,7 @@ <flag name='blockdev-backup'/> <flag name='rotation-rate'/> <flag name='input-linux'/> + <flag name='query-display-options'/> <version>5002000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100243</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml index c10c24f14e..a2f6b9d3be 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml @@ -166,6 +166,7 @@ <flag name='acpi-index'/> <flag name='input-linux'/> <flag name='confidential-guest-support'/> + <flag name='query-display-options'/> <version>6000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>39100242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml index 69746620c9..69d7c00288 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml @@ -257,6 +257,7 @@ <flag name='acpi-index'/> <flag name='input-linux'/> <flag name='confidential-guest-support'/> + <flag name='query-display-options'/> <version>6000000</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100242</microcodeVersion> diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml index c7a1205bba..7d816b4ab7 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml @@ -257,6 +257,7 @@ <flag name='virtio-gpu-gl-pci'/> <flag name='virtio-vga-gl'/> <flag name='confidential-guest-support'/> + <flag name='query-display-options'/> <version>6000050</version> <kvmVersion>0</kvmVersion> <microcodeVersion>43100243</microcodeVersion> -- 2.31.1

SDL 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 'sdl' 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 | 6 ++++++ 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, 45 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 2c6cddf2a4..ff7fce76dd 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -1580,6 +1580,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = { QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING }, { "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 }, }; typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps; @@ -5170,6 +5171,11 @@ virQEMUCapsInitProcessCapsInterlock(virQEMUCaps *qemuCaps) static void 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)) + virQEMUCapsSet(qemuCaps, QEMU_CAPS_SDL); + if (ARCH_IS_X86(qemuCaps->arch) && virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION)) { virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_CACHE); diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 9572e35c4d..a8ee45d40f 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -82,7 +82,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for syntax-check */ /* 25 */ X_QEMU_CAPS_DEVICE, /* Is the -device arg available */ - X_QEMU_CAPS_SDL, /* Is the new -sdl arg available */ + QEMU_CAPS_SDL, /* support for SDL graphics is compiled into qemu */ X_QEMU_CAPS_SMP_TOPOLOGY, /* -smp has sockets/cores/threads */ X_QEMU_CAPS_NETDEV, /* -netdev flag & netdev_add/remove */ X_QEMU_CAPS_RTC, /* The -rtc flag for clock options */ diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml index aa70cdc234..5cedec5e77 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> <flag name='virtio-blk-pci.event_idx'/> diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml index 250bebc1a2..d7b447692a 100644 --- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml index b2bff6b09f..291fdd95b3 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml index e6a95317e8..53bd692fbf 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml index 3535bb05e5..5afa0e7d0c 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.s390x.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> <flag name='virtio-blk-pci.event_idx'/> diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml index bf3ab61aa9..1d25f2c3fa 100644 --- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml index d70ce46519..c6eea904e0 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml index a87072faee..710687d316 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv32.xml @@ -3,6 +3,7 @@ <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> + <flag name='sdl'/> <flag name='scsi-disk.channel'/> <flag name='scsi-block'/> <flag name='dump-guest-memory'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml index 7e470d941a..4d9290c482 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.riscv64.xml @@ -3,6 +3,7 @@ <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> + <flag name='sdl'/> <flag name='scsi-disk.channel'/> <flag name='scsi-block'/> <flag name='dump-guest-memory'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml index 8ffd4d1dc7..b0083189e1 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.s390x.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> <flag name='virtio-blk-pci.event_idx'/> diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml index df815f878d..6d064953fa 100644 --- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml index 755f846c2d..56c71d45ac 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml index 332ab1d130..3fb8115b64 100644 --- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml index c6972fb9e5..4239da6d7a 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml index f8c5ddb099..fd96361a3e 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml index 804fb07c70..3d5fe67c2b 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv32.xml @@ -3,6 +3,7 @@ <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> + <flag name='sdl'/> <flag name='spice'/> <flag name='hda-duplex'/> <flag name='ccid-emulated'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml index 42e0f153f3..08307660ad 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.riscv64.xml @@ -3,6 +3,7 @@ <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> + <flag name='sdl'/> <flag name='spice'/> <flag name='hda-duplex'/> <flag name='ccid-emulated'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml index cad9606b15..075dd8a453 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> <flag name='virtio-blk-pci.event_idx'/> diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml index c7ecbfa45a..32a17e50d7 100644 --- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml index 970f170f5d..83f52ff660 100644 --- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml index e1707b22a5..e5cd3336f7 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml index 9ca0a6cfde..53588c858a 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml index 36f4908474..cd17f7b58e 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> <flag name='virtio-blk-pci.event_idx'/> diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml index 432802f7b2..c6445ce9a5 100644 --- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml index d62fb640a4..a5ee240140 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml index 116ea1d289..0788afdc12 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml index ac41141dea..9b70bf4f9b 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.riscv64.xml @@ -3,6 +3,7 @@ <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> + <flag name='sdl'/> <flag name='spice'/> <flag name='hda-duplex'/> <flag name='ccid-emulated'/> diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml index 7bc91b3070..de7d3a1726 100644 --- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml index bb1acbf42e..1fe12346fd 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.sparc.xml @@ -3,6 +3,7 @@ <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> + <flag name='sdl'/> <flag name='spice'/> <flag name='usb-redir'/> <flag name='scsi-disk.channel'/> diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml index fa86d43e56..b2541a251c 100644 --- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml index 86590b8a16..0283992fff 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml index 12c0ab47b8..eadc07bd5f 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='hda-duplex'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml index 457339740a..8a1f84c528 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.riscv64.xml @@ -3,6 +3,7 @@ <qemuctime>0</qemuctime> <selfctime>0</selfctime> <selfvers>0</selfvers> + <flag name='sdl'/> <flag name='spice'/> <flag name='hda-duplex'/> <flag name='ccid-emulated'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml index 816b9a150c..b39cd8ba6f 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> <flag name='virtio-blk-pci.event_idx'/> diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml index 5b5bf76355..504bc094af 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml index a2f6b9d3be..1a0e75570c 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.s390x.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='virtio-tx-alg'/> <flag name='virtio-blk-pci.ioeventfd'/> <flag name='virtio-blk-pci.event_idx'/> diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml index 69d7c00288..cd21c6c695 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> diff --git a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml index 7d816b4ab7..2df9e6f4cb 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml @@ -4,6 +4,7 @@ <selfctime>0</selfctime> <selfvers>0</selfvers> <flag name='kvm'/> + <flag name='sdl'/> <flag name='no-hpet'/> <flag name='spice'/> <flag name='hda-duplex'/> -- 2.31.1

Next commit will modify the code so that it validates whether SDL is present. Certain tests need to get the SDL capability to keep working properly. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- tests/qemuxml2argvtest.c | 9 +++++---- tests/qemuxml2xmltest.c | 7 ++++--- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 3c5c0fc81b..bfe8c84172 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -1164,7 +1164,7 @@ mymain(void) /* Validate auto-creation of <audio> for legacy compat */ g_setenv("QEMU_AUDIO_DRV", "sdl", TRUE); g_setenv("SDL_AUDIODRIVER", "esd", TRUE); - DO_TEST("audio-default-sdl", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("audio-default-sdl", QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_SDL); DO_TEST_CAPS_LATEST("audio-default-sdl"); g_unsetenv("QEMU_AUDIO_DRV"); g_unsetenv("SDL_AUDIODRIVER"); @@ -1546,10 +1546,10 @@ mymain(void) QEMU_CAPS_DEVICE_CIRRUS_VGA); DO_TEST("graphics-sdl", - QEMU_CAPS_DEVICE_VGA); + QEMU_CAPS_DEVICE_VGA, QEMU_CAPS_SDL); DO_TEST_CAPS_LATEST_PARSE_ERROR("graphics-sdl-egl-headless"); DO_TEST("graphics-sdl-fullscreen", - QEMU_CAPS_DEVICE_CIRRUS_VGA); + QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_SDL); DO_TEST("graphics-spice", QEMU_CAPS_SPICE, QEMU_CAPS_DEVICE_QXL, @@ -2494,7 +2494,8 @@ mymain(void) QEMU_CAPS_SPICE_RENDERNODE); DO_TEST("video-virtio-gpu-sdl-gl", QEMU_CAPS_DEVICE_VIRTIO_GPU, - QEMU_CAPS_VIRTIO_GPU_VIRGL); + QEMU_CAPS_VIRTIO_GPU_VIRGL, + QEMU_CAPS_SDL); DO_TEST("video-virtio-gpu-secondary", QEMU_CAPS_DEVICE_VIRTIO_GPU); DO_TEST("video-virtio-vga", diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c index 8ba732d566..c0794666ab 100644 --- a/tests/qemuxml2xmltest.c +++ b/tests/qemuxml2xmltest.c @@ -384,8 +384,8 @@ mymain(void) QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_SPICE); - DO_TEST("graphics-sdl", QEMU_CAPS_DEVICE_VGA); - DO_TEST("graphics-sdl-fullscreen", QEMU_CAPS_DEVICE_CIRRUS_VGA); + DO_TEST("graphics-sdl", QEMU_CAPS_DEVICE_VGA, QEMU_CAPS_SDL); + DO_TEST("graphics-sdl-fullscreen", QEMU_CAPS_DEVICE_CIRRUS_VGA, QEMU_CAPS_SDL); cfg->spiceTLS = true; DO_TEST("graphics-spice", @@ -1282,7 +1282,8 @@ mymain(void) QEMU_CAPS_SPICE_RENDERNODE); DO_TEST("video-virtio-gpu-sdl-gl", QEMU_CAPS_DEVICE_VIRTIO_GPU, - QEMU_CAPS_VIRTIO_GPU_VIRGL); + QEMU_CAPS_VIRTIO_GPU_VIRGL, + QEMU_CAPS_SDL); DO_TEST("virtio-input", QEMU_CAPS_VIRTIO_KEYBOARD, -- 2.31.1

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 ff7fce76dd..bd60460771 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6085,7 +6085,8 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps, dev->supported = VIR_TRISTATE_BOOL_YES; dev->type.report = true; - VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL)) + VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC)) VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_VNC); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE)) -- 2.31.1

On 15/06/2021 12.01, 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.
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 ff7fce76dd..bd60460771 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6085,7 +6085,8 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps, dev->supported = VIR_TRISTATE_BOOL_YES; dev->type.report = true;
- VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL)) + VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC)) VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_VNC); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE))
Thanks for tackling the libvirt side, Peter! Reviewed-by: Thomas Huth <thuth@redhat.com> (PS: We could now also test VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS in the same way in this function now, I guess)

On Tue, Jun 15, 2021 at 12:56:29 +0200, Thomas Huth wrote:
On 15/06/2021 12.01, 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.
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 ff7fce76dd..bd60460771 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6085,7 +6085,8 @@ virQEMUCapsFillDomainDeviceGraphicsCaps(virQEMUCaps *qemuCaps, dev->supported = VIR_TRISTATE_BOOL_YES; dev->type.report = true;
- VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL); + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SDL)) + VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_SDL); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_VNC)) VIR_DOMAIN_CAPS_ENUM_SET(dev->type, VIR_DOMAIN_GRAPHICS_TYPE_VNC); if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SPICE))
Thanks for tackling the libvirt side, Peter!
Reviewed-by: Thomas Huth <thuth@redhat.com>
(PS: We could now also test VIR_DOMAIN_GRAPHICS_TYPE_EGL_HEADLESS in the same way in this function now, I guess)
Indeed. When adding the capability I've noticed one for EGL and thought it's already handled, but it was actually QEMU_CAPS_EGL_HEADLESS_RENDERNODE, thus EGL itself isn't handled.

On 6/15/21 12:01 PM, Peter Krempa wrote:
Thomas' recent qemu patch strives to add proper detectability of SDL support:
https://listman.redhat.com/archives/libvir-list/2021-June/msg00398.html
This series is the libvirt counterpart.
Note that all capability files we have for now claim support so the actual effect of this patch will be seen just later.
Peter Krempa (4): qemu: capabilities: Introduce QEMU_CAPS_QUERY_DISPLAY_OPTIONS qemu: capabilities: Un-retire QEMU_CAPS_SDL tests: qemuxml2*: Add QEMU_CAPS_SDL to fake-caps tests using SDL graphics qemu: capabilities: Fill SDL graphics support only when it's really supported
src/qemu/qemu_capabilities.c | 11 ++++++++++- src/qemu/qemu_capabilities.h | 3 ++- tests/qemucapabilitiesdata/caps_2.11.0.s390x.xml | 1 + tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml | 1 +
[...]
tests/qemucapabilitiesdata/caps_6.1.0.x86_64.xml | 2 ++ tests/qemuxml2argvtest.c | 9 +++++---- tests/qemuxml2xmltest.c | 7 ++++--- 42 files changed, 85 insertions(+), 9 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano
participants (3)
-
Jano Tomko
-
Peter Krempa
-
Thomas Huth