qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [6989] Fix display breakage when resizing the screen (v


From: Stefano Stabellini
Subject: Re: [Qemu-devel] [6989] Fix display breakage when resizing the screen (v2) (Avi Kivity)
Date: Mon, 06 Apr 2009 15:21:49 +0100
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

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 <address@hidden>
> Signed-off-by: Anthony Liguori <address@hidden>
> 

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.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]