From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Lqsjv-0003nB-N8 for qemu-devel@nongnu.org; Mon, 06 Apr 2009 13:36:07 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Lqsjq-0003km-At for qemu-devel@nongnu.org; Mon, 06 Apr 2009 13:36:06 -0400 Received: from [199.232.76.173] (port=48194 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lqsjq-0003kf-4t for qemu-devel@nongnu.org; Mon, 06 Apr 2009 13:36:02 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:62915) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Lqsjp-0004uY-Qy for qemu-devel@nongnu.org; Mon, 06 Apr 2009 13:36:02 -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 n36HZvel023773 for ; Mon, 6 Apr 2009 10:35:58 -0700 Message-ID: <49DA3D7E.5050506@eu.citrix.com> Date: Mon, 06 Apr 2009 18:35:58 +0100 From: Stefano Stabellini MIME-Version: 1.0 Subject: Re: [Qemu-devel] [6989] Fix display breakage when resizing the screen (v2) (Avi Kivity) References: <49DA0FFD.1060600@eu.citrix.com> <49DA14A5.4060301@redhat.com> <49DA176B.4090102@redhat.com> In-Reply-To: <49DA176B.4090102@redhat.com> 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" Avi Kivity wrote: > Avi Kivity wrote: >>> 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. >>> >> This happens through cirrus_do_copy(), which implies that the display >> surface is involved. Is that wrong? > > I think what you're saying is, we shouldn't call qemu_console_copy() in > cirrus_do_copy() if vga is not displayed on the console? > > (and conversely, if it is displayed, we shouldn't call > cirrus_invalidate_region). > I tried several times to manually reproduce the issue with no luck: if no vnc clients are supposed to be connected, how do you make the cirrus emulated hw do a bitblit? In any case it makes sense that the problem is in qemu_console_copy() rather than in the rop function itself that only operates on the emulated framebuffer. But calling qemu_console_copy() in cirrus_do_copy() shouldn't be risky because before that, we call vga_hw_update() that should do the resize. Without a better understanding of the bug I will refrain from making any suggestion.