Blame SOURCES/libvirt-qemu-command-introduce-new-vgamem-attribute-for-QXL-video-device.patch

9119d9
From 0c854d5840c6c7546628f578f5c9c3595c9eef60 Mon Sep 17 00:00:00 2001
9119d9
Message-Id: <0c854d5840c6c7546628f578f5c9c3595c9eef60@dist-git>
9119d9
From: Pavel Hrdina <phrdina@redhat.com>
9119d9
Date: Tue, 25 Nov 2014 10:53:03 +0100
9119d9
Subject: [PATCH] qemu-command: introduce new vgamem attribute for QXL video
9119d9
 device
9119d9
9119d9
Add attribute to set vgamem_mb parameter of QXL device for QEMU. This
9119d9
value sets the size of VGA framebuffer for QXL device. Default value in
9119d9
QEMU is 8MB so reuse it also in libvirt to not break things.
9119d9
9119d9
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1076098
9119d9
9119d9
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
9119d9
(cherry picked from commit 742d49fa170bf72ec1fee516fda9f6797b1124f9)
9119d9
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
9119d9
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
9119d9
---
9119d9
 docs/formatdomain.html.in                          |  5 ++++-
9119d9
 docs/schemas/domaincommon.rng                      |  5 +++++
9119d9
 src/conf/domain_conf.c                             | 26 ++++++++++++++++++++++
9119d9
 src/conf/domain_conf.h                             |  1 +
9119d9
 src/qemu/qemu_command.c                            | 22 ++++++++++++++++--
9119d9
 src/qemu/qemu_domain.c                             | 19 ++++++++++++++++
9119d9
 .../qemuxml2argv-graphics-spice-compression.xml    |  4 ++--
9119d9
 .../qemuxml2argv-graphics-spice-qxl-vga.xml        |  4 ++--
9119d9
 .../qemuxml2argv-graphics-spice.xml                |  4 ++--
9119d9
 .../qemuxml2argv-pcihole64-q35.xml                 |  2 +-
9119d9
 tests/qemuxml2argvdata/qemuxml2argv-q35.xml        |  2 +-
9119d9
 .../qemuxml2argv-serial-spiceport.xml              |  2 +-
9119d9
 .../qemuxml2argv-video-qxl-device-vgamem.args      |  4 ++--
9119d9
 .../qemuxml2argv-video-qxl-sec-device-vgamem.args  |  6 ++---
9119d9
 tests/qemuxml2argvtest.c                           |  6 +++--
9119d9
 tests/qemuxml2xmloutdata/qemuxml2xmlout-q35.xml    |  2 +-
9119d9
 16 files changed, 94 insertions(+), 20 deletions(-)
9119d9
9119d9
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
9119d9
index 4755e01..122e21f 100644
9119d9
--- a/docs/formatdomain.html.in
9119d9
+++ b/docs/formatdomain.html.in
9119d9
@@ -4689,7 +4689,10 @@ qemu-kvm -net nic,model=? /dev/null
9119d9
           only and specifies the size of the primary bar, while the optional
9119d9
           attribute vram specifies the secondary bar size.
9119d9
           If "ram" or "vram" are not supplied a default value is used. The ram
9119d9
-          should also be rounded to power of two as vram.
9119d9
+          should also be rounded to power of two as vram. There is also optional
9119d9
+          attribute vgamem (since 1.2.11 (QEMU
9119d9
+          only)) to set the size of VGA framebuffer for fallback mode of
9119d9
+          QXL device.
9119d9
         

9119d9
       
9119d9
 
9119d9
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
9119d9
index 4e917b1..55f49c6 100644
9119d9
--- a/docs/schemas/domaincommon.rng
9119d9
+++ b/docs/schemas/domaincommon.rng
9119d9
@@ -2868,6 +2868,11 @@
9119d9
                   <ref name="unsignedInt"/>
9119d9
                 </attribute>
9119d9
               </optional>
9119d9
+              <optional>
9119d9
+                <attribute name="vgamem">
9119d9
+                  <ref name="unsignedInt"/>
9119d9
+                </attribute>
9119d9
+              </optional>
9119d9
             </group>
9119d9
           </choice>
9119d9
           <optional>
9119d9
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
9119d9
index 0b0200b..09ddc25 100644
9119d9
--- a/src/conf/domain_conf.c
9119d9
+++ b/src/conf/domain_conf.c
9119d9
@@ -10114,6 +10114,7 @@ virDomainVideoDefParseXML(xmlNodePtr node,
9119d9
     char *heads = NULL;
9119d9
     char *vram = NULL;
9119d9
     char *ram = NULL;
9119d9
+    char *vgamem = NULL;
9119d9
     char *primary = NULL;
9119d9
 
9119d9
     if (VIR_ALLOC(def) < 0)
9119d9
@@ -10127,6 +10128,7 @@ virDomainVideoDefParseXML(xmlNodePtr node,
9119d9
                 type = virXMLPropString(cur, "type");
9119d9
                 ram = virXMLPropString(cur, "ram");
9119d9
                 vram = virXMLPropString(cur, "vram");
9119d9
+                vgamem = virXMLPropString(cur, "vgamem");
9119d9
                 heads = virXMLPropString(cur, "heads");
9119d9
 
9119d9
                 if ((primary = virXMLPropString(cur, "primary")) != NULL) {
9119d9
@@ -10180,6 +10182,19 @@ virDomainVideoDefParseXML(xmlNodePtr node,
9119d9
         def->vram = virDomainVideoDefaultRAM(dom, def->type);
9119d9
     }
9119d9
 
9119d9
+    if (vgamem) {
9119d9
+        if (def->type != VIR_DOMAIN_VIDEO_TYPE_QXL) {
9119d9
+            virReportError(VIR_ERR_XML_ERROR, "%s",
9119d9
+                           _("vgamem attribute only supported for type of qxl"));
9119d9
+            goto error;
9119d9
+        }
9119d9
+        if (virStrToLong_ui(vgamem, NULL, 10, &def->vgamem) < 0) {
9119d9
+            virReportError(VIR_ERR_XML_ERROR,
9119d9
+                           _("cannot parse video vgamem '%s'"), vgamem);
9119d9
+            goto error;
9119d9
+        }
9119d9
+    }
9119d9
+
9119d9
     if (heads) {
9119d9
         if (virStrToLong_ui(heads, NULL, 10, &def->heads) < 0) {
9119d9
             virReportError(VIR_ERR_INTERNAL_ERROR,
9119d9
@@ -10196,6 +10211,7 @@ virDomainVideoDefParseXML(xmlNodePtr node,
9119d9
     VIR_FREE(type);
9119d9
     VIR_FREE(ram);
9119d9
     VIR_FREE(vram);
9119d9
+    VIR_FREE(vgamem);
9119d9
     VIR_FREE(heads);
9119d9
 
9119d9
     return def;
9119d9
@@ -10205,6 +10221,7 @@ virDomainVideoDefParseXML(xmlNodePtr node,
9119d9
     VIR_FREE(type);
9119d9
     VIR_FREE(ram);
9119d9
     VIR_FREE(vram);
9119d9
+    VIR_FREE(vgamem);
9119d9
     VIR_FREE(heads);
9119d9
     return NULL;
9119d9
 }
9119d9
@@ -14528,6 +14545,13 @@ virDomainVideoDefCheckABIStability(virDomainVideoDefPtr src,
9119d9
         return false;
9119d9
     }
9119d9
 
9119d9
+    if (src->vgamem != dst->vgamem) {
9119d9
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
9119d9
+                       _("Target video card vgamem %u does not match source %u"),
9119d9
+                       dst->vgamem, src->vgamem);
9119d9
+        return false;
9119d9
+    }
9119d9
+
9119d9
     if (src->heads != dst->heads) {
9119d9
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
9119d9
                        _("Target video card heads %u does not match source %u"),
9119d9
@@ -17802,6 +17826,8 @@ virDomainVideoDefFormat(virBufferPtr buf,
9119d9
         virBufferAsprintf(buf, " ram='%u'", def->ram);
9119d9
     if (def->vram)
9119d9
         virBufferAsprintf(buf, " vram='%u'", def->vram);
9119d9
+    if (def->vgamem)
9119d9
+        virBufferAsprintf(buf, " vgamem='%u'", def->vgamem);
9119d9
     if (def->heads)
9119d9
         virBufferAsprintf(buf, " heads='%u'", def->heads);
9119d9
     if (def->primary)
9119d9
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
9119d9
index ae46467..04cee80 100644
9119d9
--- a/src/conf/domain_conf.h
9119d9
+++ b/src/conf/domain_conf.h
9119d9
@@ -1284,6 +1284,7 @@ struct _virDomainVideoDef {
9119d9
     int type;
9119d9
     unsigned int ram;  /* kibibytes (multiples of 1024) */
9119d9
     unsigned int vram; /* kibibytes (multiples of 1024) */
9119d9
+    unsigned int vgamem; /* kibibytes (multiples of 1024) */
9119d9
     unsigned int heads;
9119d9
     bool primary;
9119d9
     virDomainVideoAccelDefPtr accel;
9119d9
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
9119d9
index e44f114..70730ce 100644
9119d9
--- a/src/qemu/qemu_command.c
9119d9
+++ b/src/qemu/qemu_command.c
9119d9
@@ -4853,6 +4853,12 @@ qemuBuildDeviceVideoStr(virDomainDefPtr def,
9119d9
             /* QEMU accepts bytes for vram_size. */
9119d9
             virBufferAsprintf(&buf, ",vram_size=%u", video->vram * 1024);
9119d9
         }
9119d9
+
9119d9
+        if ((primary && virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_VGA_VGAMEM)) ||
9119d9
+            (!primary && virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_VGAMEM))) {
9119d9
+            /* QEMU accepts mebibytes for vgamem_mb. */
9119d9
+            virBufferAsprintf(&buf, ",vgamem_mb=%u", video->vgamem / 1024);
9119d9
+        }
9119d9
     } else if (video->vram &&
9119d9
         ((video->type == VIR_DOMAIN_VIDEO_TYPE_VGA &&
9119d9
           virQEMUCapsGet(qemuCaps, QEMU_CAPS_VGA_VGAMEM)) ||
9119d9
@@ -9139,6 +9145,7 @@ qemuBuildCommandLine(virConnectPtr conn,
9119d9
                     virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) {
9119d9
                     unsigned int ram = def->videos[0]->ram;
9119d9
                     unsigned int vram = def->videos[0]->vram;
9119d9
+                    unsigned int vgamem = def->videos[0]->vgamem;
9119d9
 
9119d9
                     if (vram > (UINT_MAX / 1024)) {
9119d9
                         virReportError(VIR_ERR_OVERFLOW,
9119d9
@@ -9163,6 +9170,12 @@ qemuBuildCommandLine(virConnectPtr conn,
9119d9
                         virCommandAddArgFormat(cmd, "%s.vram_size=%u",
9119d9
                                                dev, vram * 1024);
9119d9
                     }
9119d9
+                    if (vgamem &&
9119d9
+                        virQEMUCapsGet(qemuCaps, QEMU_CAPS_QXL_VGA_VGAMEM)) {
9119d9
+                        virCommandAddArg(cmd, "-global");
9119d9
+                        virCommandAddArgFormat(cmd, "%s.vgamem_mb=%u",
9119d9
+                                               dev, vgamem / 1024);
9119d9
+                    }
9119d9
                 }
9119d9
 
9119d9
                 if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE) &&
9119d9
@@ -12169,8 +12182,13 @@ qemuParseCommandLine(virCapsPtr qemuCaps,
9119d9
         else
9119d9
             vid->type = video;
9119d9
         vid->vram = virDomainVideoDefaultRAM(def, vid->type);
9119d9
-        vid->ram = vid->type == VIR_DOMAIN_VIDEO_TYPE_QXL ?
9119d9
-                       virDomainVideoDefaultRAM(def, vid->type) : 0;
9119d9
+        if (vid->type == VIR_DOMAIN_VIDEO_TYPE_QXL) {
9119d9
+            vid->ram = virDomainVideoDefaultRAM(def, vid->type);
9119d9
+            vid->vgamem = 8 * 1024;
9119d9
+        } else {
9119d9
+            vid->ram = 0;
9119d9
+            vid->vgamem = 0;
9119d9
+        }
9119d9
         vid->heads = 1;
9119d9
 
9119d9
         if (VIR_APPEND_ELEMENT(def->videos, def->nvideos, vid) < 0) {
9119d9
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
9119d9
index d166269..f61593b 100644
9119d9
--- a/src/qemu/qemu_domain.c
9119d9
+++ b/src/qemu/qemu_domain.c
9119d9
@@ -1176,6 +1176,25 @@ qemuDomainDeviceDefPostParse(virDomainDeviceDefPtr dev,
9119d9
         goto cleanup;
9119d9
     }
9119d9
 
9119d9
+    if (dev->type == VIR_DOMAIN_DEVICE_VIDEO &&
9119d9
+        dev->data.video->type == VIR_DOMAIN_VIDEO_TYPE_QXL) {
9119d9
+        if (dev->data.video->vgamem) {
9119d9
+            if (dev->data.video->vgamem < 1024) {
9119d9
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
9119d9
+                               _("value for 'vgamem' must be at least 1 MiB "
9119d9
+                                 "(1024 KiB)"));
9119d9
+                goto cleanup;
9119d9
+            }
9119d9
+            if (dev->data.video->vgamem != VIR_ROUND_UP_POWER_OF_TWO(dev->data.video->vgamem)) {
9119d9
+                virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
9119d9
+                               _("value for 'vgamem' must be power of two"));
9119d9
+                goto cleanup;
9119d9
+            }
9119d9
+        } else {
9119d9
+            dev->data.video->vgamem = 8 * 1024;
9119d9
+        }
9119d9
+    }
9119d9
+
9119d9
     ret = 0;
9119d9
 
9119d9
  cleanup:
9119d9
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-compression.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-compression.xml
9119d9
index 5c9683f..c13327a 100644
9119d9
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-compression.xml
9119d9
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-compression.xml
9119d9
@@ -33,10 +33,10 @@
9119d9
       <streaming mode='filter'/>
9119d9
     </graphics>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='32768' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='32768' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='32768' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='32768' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <memballoon model='virtio'/>
9119d9
   </devices>
9119d9
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-qxl-vga.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-qxl-vga.xml
9119d9
index acf3019..ac705f3 100644
9119d9
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-qxl-vga.xml
9119d9
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice-qxl-vga.xml
9119d9
@@ -30,10 +30,10 @@
9119d9
       <channel name='inputs' mode='insecure'/>
9119d9
     </graphics>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='32768' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='32768' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='65536' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='65536' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <memballoon model='virtio'/>
9119d9
   </devices>
9119d9
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
9119d9
index 335ce69..0c61ee5 100644
9119d9
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
9119d9
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-spice.xml
9119d9
@@ -37,10 +37,10 @@
9119d9
       <filetransfer enable='no'/>
9119d9
     </graphics>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='32768' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='32768' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='32768' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='32768' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <memballoon model='virtio'/>
9119d9
   </devices>
9119d9
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.xml b/tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.xml
9119d9
index 168b2701..ef9cd4f 100644
9119d9
--- a/tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.xml
9119d9
+++ b/tests/qemuxml2argvdata/qemuxml2argv-pcihole64-q35.xml
9119d9
@@ -26,7 +26,7 @@
9119d9
     <controller type='pci' index='2' model='pci-bridge'/>
9119d9
     <controller type='sata' index='0'/>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='32768' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='32768' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <memballoon model='none'/>
9119d9
   </devices>
9119d9
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-q35.xml b/tests/qemuxml2argvdata/qemuxml2argv-q35.xml
9119d9
index 02df713..05967a4 100644
9119d9
--- a/tests/qemuxml2argvdata/qemuxml2argv-q35.xml
9119d9
+++ b/tests/qemuxml2argvdata/qemuxml2argv-q35.xml
9119d9
@@ -23,7 +23,7 @@
9119d9
     <controller type='pci' index='1' model='dmi-to-pci-bridge'/>
9119d9
     <controller type='pci' index='2' model='pci-bridge'/>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='32768' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='32768' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <memballoon model='none'/>
9119d9
   </devices>
9119d9
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-spiceport.xml b/tests/qemuxml2argvdata/qemuxml2argv-serial-spiceport.xml
9119d9
index 905924e..1127db1 100644
9119d9
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-spiceport.xml
9119d9
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-spiceport.xml
9119d9
@@ -37,7 +37,7 @@
9119d9
       <listen type='address' address='127.0.0.1'/>
9119d9
     </graphics>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='65536' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='65536' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <memballoon model='virtio'/>
9119d9
   </devices>
9119d9
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-vgamem.args b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-vgamem.args
9119d9
index c9eb535..5398ffe 100644
9119d9
--- a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-vgamem.args
9119d9
+++ b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-device-vgamem.args
9119d9
@@ -2,5 +2,5 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
9119d9
 /usr/bin/qemu -S -M pc -m 1024 -smp 1 -nographic -nodefaults \
9119d9
 -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \
9119d9
 -hda /var/lib/libvirt/images/QEMUGuest1 \
9119d9
--device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0\
9119d9
-,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
9119d9
+-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=8\
9119d9
+,bus=pci.0,addr=0x2 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
9119d9
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-sec-device-vgamem.args b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-sec-device-vgamem.args
9119d9
index 5fc41bb..82aa0a9 100644
9119d9
--- a/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-sec-device-vgamem.args
9119d9
+++ b/tests/qemuxml2argvdata/qemuxml2argv-video-qxl-sec-device-vgamem.args
9119d9
@@ -2,7 +2,7 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test QEMU_AUDIO_DRV=none \
9119d9
 /usr/bin/qemu -S -M pc -m 1024 -smp 1 -nographic -nodefaults \
9119d9
 -monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \
9119d9
 -hda /var/lib/libvirt/images/QEMUGuest1 \
9119d9
--device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0\
9119d9
-,addr=0x2 -device qxl,id=video1,ram_size=67108864,vram_size=67108864,bus=pci.0\
9119d9
-,addr=0x4 \
9119d9
+-device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=8\
9119d9
+,bus=pci.0,addr=0x2 -device qxl,id=video1,ram_size=67108864,vram_size=67108864\
9119d9
+,vgamem_mb=8,bus=pci.0,addr=0x4 \
9119d9
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3
9119d9
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
9119d9
index 24e9740..967760a 100644
9119d9
--- a/tests/qemuxml2argvtest.c
9119d9
+++ b/tests/qemuxml2argvtest.c
9119d9
@@ -1331,13 +1331,15 @@ mymain(void)
9119d9
     DO_TEST("video-qxl-device", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_QXL_VGA,
9119d9
             QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
9119d9
     DO_TEST("video-qxl-device-vgamem", QEMU_CAPS_DEVICE,
9119d9
-            QEMU_CAPS_DEVICE_QXL_VGA, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
9119d9
+            QEMU_CAPS_DEVICE_QXL_VGA, QEMU_CAPS_DEVICE_VIDEO_PRIMARY,
9119d9
+            QEMU_CAPS_QXL_VGA_VGAMEM);
9119d9
     DO_TEST_FAILURE("video-qxl-sec-nodevice", QEMU_CAPS_VGA, QEMU_CAPS_VGA_QXL);
9119d9
     DO_TEST("video-qxl-sec-device", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_QXL_VGA,
9119d9
             QEMU_CAPS_DEVICE_QXL, QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
9119d9
     DO_TEST("video-qxl-sec-device-vgamem", QEMU_CAPS_DEVICE,
9119d9
             QEMU_CAPS_DEVICE_QXL_VGA, QEMU_CAPS_DEVICE_QXL,
9119d9
-            QEMU_CAPS_DEVICE_VIDEO_PRIMARY);
9119d9
+            QEMU_CAPS_DEVICE_VIDEO_PRIMARY, QEMU_CAPS_QXL_VGA_VGAMEM,
9119d9
+            QEMU_CAPS_QXL_VGAMEM);
9119d9
 
9119d9
     DO_TEST("virtio-rng-default", QEMU_CAPS_DEVICE, QEMU_CAPS_DEVICE_VIRTIO_RNG,
9119d9
             QEMU_CAPS_OBJECT_RNG_RANDOM);
9119d9
diff --git a/tests/qemuxml2xmloutdata/qemuxml2xmlout-q35.xml b/tests/qemuxml2xmloutdata/qemuxml2xmlout-q35.xml
9119d9
index 752c7d5..9dd4162 100644
9119d9
--- a/tests/qemuxml2xmloutdata/qemuxml2xmlout-q35.xml
9119d9
+++ b/tests/qemuxml2xmloutdata/qemuxml2xmlout-q35.xml
9119d9
@@ -24,7 +24,7 @@
9119d9
     <controller type='pci' index='2' model='pci-bridge'/>
9119d9
     <controller type='sata' index='0'/>
9119d9
     <video>
9119d9
-      <model type='qxl' ram='65536' vram='32768' heads='1'/>
9119d9
+      <model type='qxl' ram='65536' vram='32768' vgamem='8192' heads='1'/>
9119d9
     </video>
9119d9
     <memballoon model='none'/>
9119d9
   </devices>
9119d9
-- 
9119d9
2.1.3
9119d9