]> xenbits.xensource.com Git - qemu-xen-traditional.git/commit
cirrus/vnc: zap drop bitblit support from console code. stable-4.6 xen-4.6.6
authorGerd Hoffmann <kraxel@redhat.com>
Thu, 9 Mar 2017 11:14:55 +0000 (11:14 +0000)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 21 Mar 2017 18:42:49 +0000 (18:42 +0000)
commit57ca3f4a3092695dd553d3ff4540f5559b1c8fc7
tree1236e815d2eb7812a3a7624c8f07934779ca0edb
parentb7e9d3976ba48f277da6004311f5025b07a884ea
cirrus/vnc: zap drop bitblit support from console code.

There is a special code path (dpy_gfx_copy) to allow graphic emulation
notify user interface code about bitblit operations carryed out by
guests.  It is supported by cirrus and vnc server.  The intended purpose
is to optimize display scrolls and just send over the scroll op instead
of a full display update.

This is rarely used these days though because modern guests simply don't
use the cirrus blitter any more.  Any linux guest using the cirrus drm
driver doesn't.  Any windows guest newer than winxp doesn't ship with a
cirrus driver any more and thus uses the cirrus as simple framebuffer.

So this code tends to bitrot and bugs can go unnoticed for a long time.
See for example commit "3e10c3e vnc: fix qemu crash because of SIGSEGV"
which fixes a bug lingering in the code for almost a year, added by
commit "c7628bf vnc: only alloc server surface with clients connected".

Also the vnc server will throttle the frame rate in case it figures the
network can't keep up (send buffers are full).  This doesn't work with
dpy_gfx_copy, for any copy operation sent to the vnc client we have to
send all outstanding updates beforehand, otherwise the vnc client might
run the client side blit on outdated data and thereby corrupt the
display.  So this dpy_gfx_copy "optimization" might even make things
worse on slow network links.

Lets kill it once for all.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
These changes (dropping dpy_copy and all its references and
implementations) reimplemented for qemu-xen-traditional.

This is XSA-211.

Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
(cherry picked from commit 8051789e982499050680a26febeada7467e18a8d)
(cherry picked from commit 3bed93d7724564e15b1025723af81d2971bb0e4b)
(cherry picked from commit 73e8fa3fec5b907065f9cee4c65042fc55724c53)
console.c
console.h
hw/cirrus_vga.c
hw/vmware_vga.c
vnc.c