f375e62
From 5100d7f2beedd5248337f956c74aee4300a00915 Mon Sep 17 00:00:00 2001
5ba1a77
From: Gerd Hoffmann <kraxel@redhat.com>
5ba1a77
Date: Fri, 14 Sep 2012 22:09:23 +0200
5544c1b
Subject: [PATCH] qxl: always update displaysurface on resize
5ba1a77
5ba1a77
Don't try to be clever and skip displaysurface reinitialization in case
5ba1a77
the size hasn't changed.  Other parameters might have changed
5ba1a77
nevertheless, for example depth or stride, resulting in rendering being
5ba1a77
broken then.
5ba1a77
5ba1a77
Trigger: boot linux guest with vesafb, start X11, make sure both vesafb
5ba1a77
and X11 use the display same resolution.  Then watch X11 screen being
5ba1a77
upside down.
5ba1a77
5ba1a77
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
f375e62
(cherry picked from commit 0ec8df3974d2a4ff95b5fd4785b9bd3def7252f3)
f375e62
f375e62
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
5ba1a77
---
5ba1a77
 hw/qxl-render.c | 4 ----
5ba1a77
 1 file changed, 4 deletions(-)
5ba1a77
5ba1a77
diff --git a/hw/qxl-render.c b/hw/qxl-render.c
5ba1a77
index e2e3fe2..b66c168 100644
5ba1a77
--- a/hw/qxl-render.c
5ba1a77
+++ b/hw/qxl-render.c
5ba1a77
@@ -99,7 +99,6 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)
5ba1a77
 {
5ba1a77
     VGACommonState *vga = &qxl->vga;
5ba1a77
     int i;
5ba1a77
-    DisplaySurface *surface = vga->ds->surface;
5ba1a77
 
5ba1a77
     if (qxl->guest_primary.resized) {
5ba1a77
         qxl->guest_primary.resized = 0;
5ba1a77
@@ -112,9 +111,6 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)
5ba1a77
                qxl->guest_primary.qxl_stride,
5ba1a77
                qxl->guest_primary.bytes_pp,
5ba1a77
                qxl->guest_primary.bits_pp);
5ba1a77
-    }
5ba1a77
-    if (surface->width != qxl->guest_primary.surface.width ||
5ba1a77
-        surface->height != qxl->guest_primary.surface.height) {
5ba1a77
         if (qxl->guest_primary.qxl_stride > 0) {
5ba1a77
             qemu_free_displaysurface(vga->ds);
5ba1a77
             qemu_create_displaysurface_from(qxl->guest_primary.surface.width,