Accepting request 242427 from home:a_faerber:branches:Virtualization
Backport VNC fixes OBS-URL: https://build.opensuse.org/request/show/242427 OBS-URL: https://build.opensuse.org/package/show/Virtualization/qemu?expand=0&rev=221
This commit is contained in:
parent
640c1b19fd
commit
bb02da1371
33
0039-fix-full-frame-updates-for-VNC-clie.patch
Normal file
33
0039-fix-full-frame-updates-for-VNC-clie.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From 7e160ac64df6af7f53c45d5a3cdb2185a2db5720 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Stephan Kulow <coolo@suse.de>
|
||||||
|
Date: Wed, 23 Jul 2014 16:03:14 +0200
|
||||||
|
Subject: [PATCH] fix full frame updates for VNC clients
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
If the client asks for !incremental frame updates, it has lost its content
|
||||||
|
so dirty doesn't matter - it has to see the full frame, so setting force_update
|
||||||
|
|
||||||
|
Signed-off-by: Stephan Kulow <coolo@suse.de>
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Reviewed-by: Peter Lieven <pl@kamp.de>
|
||||||
|
(cherry picked from commit 07535a890200e640517be0ae04fcff28860ecd37)
|
||||||
|
[AF: BNC#888142]
|
||||||
|
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||||
|
---
|
||||||
|
ui/vnc.c | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/ui/vnc.c b/ui/vnc.c
|
||||||
|
index ab03ee3..75dd0a1 100644
|
||||||
|
--- a/ui/vnc.c
|
||||||
|
+++ b/ui/vnc.c
|
||||||
|
@@ -1887,6 +1887,7 @@ static void framebuffer_update_request(VncState *vs, int incremental,
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ vs->force_update = 1;
|
||||||
|
vnc_set_area_dirty(vs->dirty, width, height, x, y, w, h);
|
||||||
|
}
|
||||||
|
|
65
0040-vnc-update-fix.patch
Normal file
65
0040-vnc-update-fix.patch
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
From 6fc52b247a1e6ff8870ea5e826ceab01983b8b90 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Date: Wed, 23 Jul 2014 11:52:02 +0200
|
||||||
|
Subject: [PATCH] vnc update fix
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
We need to remember has_updates for each vnc client. Otherwise it might
|
||||||
|
happen that vnc_update_client(has_dirty=1) takes the first exit due to
|
||||||
|
output buffers not being flushed yet and subsequent calls with
|
||||||
|
has_dirty=0 take the second exit, wrongly assuming there is nothing to
|
||||||
|
do because the work defered in the first call is ignored.
|
||||||
|
|
||||||
|
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
|
||||||
|
Reviewed-by: Peter Lieven <pl@kamp.de>
|
||||||
|
(cherry picked from commit 6365828003c8e88bff67d351af4b66c406568a26)
|
||||||
|
[AF: Relates to BNC#888142]
|
||||||
|
Signed-off-by: Andreas Färber <afaerber@suse.de>
|
||||||
|
---
|
||||||
|
ui/vnc.c | 4 +++-
|
||||||
|
ui/vnc.h | 1 +
|
||||||
|
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/ui/vnc.c b/ui/vnc.c
|
||||||
|
index 75dd0a1..48e6591 100644
|
||||||
|
--- a/ui/vnc.c
|
||||||
|
+++ b/ui/vnc.c
|
||||||
|
@@ -888,6 +888,7 @@ static int find_and_clear_dirty_height(struct VncState *vs,
|
||||||
|
|
||||||
|
static int vnc_update_client(VncState *vs, int has_dirty, bool sync)
|
||||||
|
{
|
||||||
|
+ vs->has_dirty += has_dirty;
|
||||||
|
if (vs->need_update && vs->csock != -1) {
|
||||||
|
VncDisplay *vd = vs->vd;
|
||||||
|
VncJob *job;
|
||||||
|
@@ -899,7 +900,7 @@ static int vnc_update_client(VncState *vs, int has_dirty, bool sync)
|
||||||
|
/* kernel send buffers are full -> drop frames to throttle */
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
- if (!has_dirty && !vs->audio_cap && !vs->force_update)
|
||||||
|
+ if (!vs->has_dirty && !vs->audio_cap && !vs->force_update)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -942,6 +943,7 @@ static int vnc_update_client(VncState *vs, int has_dirty, bool sync)
|
||||||
|
vnc_jobs_join(vs);
|
||||||
|
}
|
||||||
|
vs->force_update = 0;
|
||||||
|
+ vs->has_dirty = 0;
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/ui/vnc.h b/ui/vnc.h
|
||||||
|
index 8f582fd..334de9d 100644
|
||||||
|
--- a/ui/vnc.h
|
||||||
|
+++ b/ui/vnc.h
|
||||||
|
@@ -263,6 +263,7 @@ struct VncState
|
||||||
|
VncDisplay *vd;
|
||||||
|
int need_update;
|
||||||
|
int force_update;
|
||||||
|
+ int has_dirty;
|
||||||
|
uint32_t features;
|
||||||
|
int absolute;
|
||||||
|
int last_x;
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 25 14:44:47 UTC 2014 - afaerber@suse.de
|
||||||
|
|
||||||
|
- Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.1
|
||||||
|
* Patches added:
|
||||||
|
0039-fix-full-frame-updates-for-VNC-clie.patch
|
||||||
|
0040-vnc-update-fix.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jul 23 12:36:41 UTC 2014 - afaerber@suse.de
|
Wed Jul 23 12:36:41 UTC 2014 - afaerber@suse.de
|
||||||
|
|
||||||
|
@ -63,6 +63,8 @@ Patch0035: 0035-virtfs-proxy-helper-Provide-__u64-f.patch
|
|||||||
Patch0036: 0036-configure-Enable-PIE-for-ppc-and-pp.patch
|
Patch0036: 0036-configure-Enable-PIE-for-ppc-and-pp.patch
|
||||||
Patch0037: 0037-tests-Don-t-run-qom-test-twice.patch
|
Patch0037: 0037-tests-Don-t-run-qom-test-twice.patch
|
||||||
Patch0038: 0038-qtest-Increase-socket-timeout.patch
|
Patch0038: 0038-qtest-Increase-socket-timeout.patch
|
||||||
|
Patch0039: 0039-fix-full-frame-updates-for-VNC-clie.patch
|
||||||
|
Patch0040: 0040-vnc-update-fix.patch
|
||||||
# Please do not add patches manually here, run update_git.sh.
|
# Please do not add patches manually here, run update_git.sh.
|
||||||
# this is to make lint happy
|
# this is to make lint happy
|
||||||
Source300: rpmlintrc
|
Source300: rpmlintrc
|
||||||
@ -154,6 +156,8 @@ run cross-architecture builds.
|
|||||||
%patch0036 -p1
|
%patch0036 -p1
|
||||||
%patch0037 -p1
|
%patch0037 -p1
|
||||||
%patch0038 -p1
|
%patch0038 -p1
|
||||||
|
%patch0039 -p1
|
||||||
|
%patch0040 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
|
./configure --prefix=%_prefix --sysconfdir=%_sysconfdir \
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 25 14:44:43 UTC 2014 - afaerber@suse.de
|
||||||
|
|
||||||
|
- Backported VNC fixes for openQA (bnc#888142):
|
||||||
|
* Patch queue updated from git://github.com/openSUSE/qemu.git opensuse-2.1
|
||||||
|
* Patches added:
|
||||||
|
0039-fix-full-frame-updates-for-VNC-clie.patch
|
||||||
|
0040-vnc-update-fix.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jul 23 12:36:37 UTC 2014 - afaerber@suse.de
|
Wed Jul 23 12:36:37 UTC 2014 - afaerber@suse.de
|
||||||
|
|
||||||
|
@ -92,6 +92,8 @@ Patch0035: 0035-virtfs-proxy-helper-Provide-__u64-f.patch
|
|||||||
Patch0036: 0036-configure-Enable-PIE-for-ppc-and-pp.patch
|
Patch0036: 0036-configure-Enable-PIE-for-ppc-and-pp.patch
|
||||||
Patch0037: 0037-tests-Don-t-run-qom-test-twice.patch
|
Patch0037: 0037-tests-Don-t-run-qom-test-twice.patch
|
||||||
Patch0038: 0038-qtest-Increase-socket-timeout.patch
|
Patch0038: 0038-qtest-Increase-socket-timeout.patch
|
||||||
|
Patch0039: 0039-fix-full-frame-updates-for-VNC-clie.patch
|
||||||
|
Patch0040: 0040-vnc-update-fix.patch
|
||||||
# Please do not add patches manually here, run update_git.sh.
|
# Please do not add patches manually here, run update_git.sh.
|
||||||
|
|
||||||
# this is to make lint happy
|
# this is to make lint happy
|
||||||
@ -524,6 +526,8 @@ This package provides a service file for starting and stopping KSM.
|
|||||||
%patch0036 -p1
|
%patch0036 -p1
|
||||||
%patch0037 -p1
|
%patch0037 -p1
|
||||||
%patch0038 -p1
|
%patch0038 -p1
|
||||||
|
%patch0039 -p1
|
||||||
|
%patch0040 -p1
|
||||||
|
|
||||||
%if %{build_x86_fw_from_source}
|
%if %{build_x86_fw_from_source}
|
||||||
# as a safeguard, delete the firmware files that we intend to build
|
# as a safeguard, delete the firmware files that we intend to build
|
||||||
|
Loading…
Reference in New Issue
Block a user