From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LqpiD-0005lx-4u for qemu-devel@nongnu.org; Mon, 06 Apr 2009 10:22:09 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lqpi8-0005lK-50 for qemu-devel@nongnu.org; Mon, 06 Apr 2009 10:22:08 -0400 Received: from [199.232.76.173] (port=47549 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lqpi7-0005lH-UA for qemu-devel@nongnu.org; Mon, 06 Apr 2009 10:22:03 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:19719) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Lqpi7-0006DW-Fn for qemu-devel@nongnu.org; Mon, 06 Apr 2009 10:22:03 -0400 Received: from [10.80.225.184] ([10.80.225.184]) by smtp01.ad.xensource.com (8.13.1/8.13.1) with ESMTP id n36ELmW4023197 for ; Mon, 6 Apr 2009 07:21:49 -0700 Message-ID: <49DA0FFD.1060600@eu.citrix.com> Date: Mon, 06 Apr 2009 15:21:49 +0100 From: Stefano Stabellini MIME-Version: 1.0 Subject: Re: [Qemu-devel] [6989] Fix display breakage when resizing the screen (v2) (Avi Kivity) References: In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "qemu-devel@nongnu.org" Anthony Liguori wrote: > Revision: 6989 > http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6989 > Author: aliguori > Date: 2009-04-05 18:41:18 +0000 (Sun, 05 Apr 2009) > Log Message: > ----------- > Fix display breakage when resizing the screen (v2) (Avi Kivity) > > When the vga resolution changes, a new display surface is not allocated > immediately; instead that is deferred until the next update. However, > if we're running without a display client attached, that won't happen > and the next bitblt is likely to cause a segfault by overflowing the > display surface. > > Fix by reallocating the display immediately when the resolution changes. > > Tested with (Windows|Linux) x (cirrus|std) x (curses|sdl). > > Changes from v1: > - fix segfault when switching virtual consoles with curses > > Signed-off-by: Avi Kivity > Signed-off-by: Anthony Liguori > While I understand the problem this patch tries to fix I think the way it fixes it is wrong. First of all this patch breaks the VC switching mechanism in qemu: just execute sleep 2; startx; in the first VC, then switch to the monitor and wait. Secondly it doesn't follow the basic idea behind the DisplayState surface: it is supposed to be a pixel surface provided by the vga emulator to the frontends, cirrus shouldn't have to care what size it is. In fact cirrus emulates bitblit operations on the emulated framebuffer, not on the DisplayState surface; if it does so is a bug and should be fixed. For these reasons I think this patch should be reverted.