summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-09-14 22:09:23 +0200
committerDoug Goldstein <cardoe@cardoe.com>2012-11-21 15:23:06 -0600
commitb55f64a4919ad277ec37390a9355bafc993d3e9a (patch)
tree7942d39d6a9d10469456047e6f697f47f7da9778
parenthw/qxl: qxl_dirty_surfaces: use uintptr_t (diff)
downloadqemu-kvm-b55f64a4919ad277ec37390a9355bafc993d3e9a.tar.gz
qemu-kvm-b55f64a4919ad277ec37390a9355bafc993d3e9a.tar.bz2
qemu-kvm-b55f64a4919ad277ec37390a9355bafc993d3e9a.zip
qxl: always update displaysurface on resize
Don't try to be clever and skip displaysurface reinitialization in case the size hasn't changed. Other parameters might have changed nevertheless, for example depth or stride, resulting in rendering being broken then. Trigger: boot linux guest with vesafb, start X11, make sure both vesafb and X11 use the display same resolution. Then watch X11 screen being upside down. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 0ec8df3974d2a4ff95b5fd4785b9bd3def7252f3)
-rw-r--r--hw/qxl-render.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/hw/qxl-render.c b/hw/qxl-render.c
index e2e3fe2d3..b66c168ef 100644
--- a/hw/qxl-render.c
+++ b/hw/qxl-render.c
@@ -99,7 +99,6 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)
{
VGACommonState *vga = &qxl->vga;
int i;
- DisplaySurface *surface = vga->ds->surface;
if (qxl->guest_primary.resized) {
qxl->guest_primary.resized = 0;
@@ -112,9 +111,6 @@ static void qxl_render_update_area_unlocked(PCIQXLDevice *qxl)
qxl->guest_primary.qxl_stride,
qxl->guest_primary.bytes_pp,
qxl->guest_primary.bits_pp);
- }
- if (surface->width != qxl->guest_primary.surface.width ||
- surface->height != qxl->guest_primary.surface.height) {
if (qxl->guest_primary.qxl_stride > 0) {
qemu_free_displaysurface(vga->ds);
qemu_create_displaysurface_from(qxl->guest_primary.surface.width,