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