diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2012-03-01 08:34:40 +0100 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2012-03-24 13:06:41 +0000 |
commit | 08c4ea294f38fa90c7e91d7402091ff8332bc65e (patch) | |
tree | 43533377d4a2f8b6302fae1761a356b5a08a1e20 /hw | |
parent | bc09845431888a0a6a680c0feeca7c6a18f8ec43 (diff) | |
download | qemu-08c4ea294f38fa90c7e91d7402091ff8332bc65e.zip qemu-08c4ea294f38fa90c7e91d7402091ff8332bc65e.tar.gz qemu-08c4ea294f38fa90c7e91d7402091ff8332bc65e.tar.bz2 |
fix screendump
Commit 45efb16124efef51de5157afc31984b5a47700f9 optimized a bit too
much. We can skip the vga_invalidate_display() in case no console
switch happened because we don't need a full redraw then. We can *not*
skip vga_hw_update() though, because the screen content will be stale
then in case nobody else calls vga_hw_update().
Trigger: vga textmode with vnc display and no client connected.
Reported-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Alon Levy <alevy@redhat.com>
Tested-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/blizzard.c | 4 | ||||
-rw-r--r-- | hw/omap_lcdc.c | 5 | ||||
-rw-r--r-- | hw/vga.c | 2 |
3 files changed, 4 insertions, 7 deletions
diff --git a/hw/blizzard.c b/hw/blizzard.c index c7d844d..29074c4 100644 --- a/hw/blizzard.c +++ b/hw/blizzard.c @@ -937,9 +937,7 @@ static void blizzard_screen_dump(void *opaque, const char *filename, { BlizzardState *s = (BlizzardState *) opaque; - if (cswitch) { - blizzard_update_display(opaque); - } + blizzard_update_display(opaque); if (s && ds_get_data(s->state)) ppm_save(filename, s->state->surface); } diff --git a/hw/omap_lcdc.c b/hw/omap_lcdc.c index f172093..4a08e9d 100644 --- a/hw/omap_lcdc.c +++ b/hw/omap_lcdc.c @@ -267,9 +267,8 @@ static int ppm_save(const char *filename, uint8_t *data, static void omap_screen_dump(void *opaque, const char *filename, bool cswitch) { struct omap_lcd_panel_s *omap_lcd = opaque; - if (cswitch) { - omap_update_display(opaque); - } + + omap_update_display(opaque); if (omap_lcd && ds_get_data(omap_lcd->state)) ppm_save(filename, ds_get_data(omap_lcd->state), omap_lcd->width, omap_lcd->height, @@ -2415,7 +2415,7 @@ static void vga_screen_dump(void *opaque, const char *filename, bool cswitch) if (cswitch) { vga_invalidate_display(s); - vga_hw_update(); } + vga_hw_update(); ppm_save(filename, s->ds->surface); } |