qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] vga: do not resize the screen on hw_invalidate


From: Stefan Weil
Subject: Re: [Qemu-devel] [PATCH] vga: do not resize the screen on hw_invalidate
Date: Wed, 18 Nov 2009 20:53:43 +0100
User-agent: Mozilla-Thunderbird 2.0.0.22 (X11/20090707)

Stefano Stabellini schrieb:
> Hi all,
> currently vga always resizes the screen when vga_hw_invalidate is called
> while this is not required and all the other graphic emulators don't.
> This patch fixes it, making vga invalidate behaviour consistent with the
> other emulated devices.
>
> Signed-off-by: Stefano Stabellini <address@hidden>

This rather old patch breaks switching to and from full screen mode
using SDL and alt-ctrl-f key.

Please revert or fix it. The patch is also part of stable-0.11, so I
expect the same problem there (but did not test it).

Found by git bisect, tested on several linux installations.

>
> ---
> hw/vga.c | 6 +++---
> hw/vga_int.h | 1 +
> 2 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/hw/vga.c b/hw/vga.c
> index 4d74ffe..53b5ff6 100644
> --- a/hw/vga.c
> +++ b/hw/vga.c
> @@ -1837,7 +1837,8 @@ static void vga_update_display(void *opaque)
> if (ds_get_bits_per_pixel(s->ds) == 0) {
> /* nothing to do */
> } else {
> - full_update = 0;
> + full_update = s->full_update;
> + s->full_update = 0;
> if (!(s->ar_index & 0x20)) {
> graphic_mode = GMODE_BLANK;
> } else {
> @@ -1867,8 +1868,7 @@ static void vga_invalidate_display(void *opaque)
> {
> VGAState *s = (VGAState *)opaque;
>
> - s->last_width = -1;
> - s->last_height = -1;
> + s->full_update = 1;
> }
>
> void vga_reset(void *opaque)
> diff --git a/hw/vga_int.h b/hw/vga_int.h
> index 631b1b0..8fdf51d 100644
> --- a/hw/vga_int.h
> +++ b/hw/vga_int.h
> @@ -158,6 +158,7 @@ typedef struct VGACommonState {
> uint32_t last_width, last_height; /* in chars or pixels */
> uint32_t last_scr_width, last_scr_height; /* in pixels */
> uint32_t last_depth; /* in bits */
> + uint8_t full_update;
> uint8_t cursor_start, cursor_end;
> uint32_t cursor_offset;
> unsigned int (*rgb_to_pixel)(unsigned int r,





reply via email to

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