mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-04 02:56:21 +00:00
vmsvga: fix vmsvga_update_display
Fix standard vga mode check: Both s->config and s->enabled must be set to enable vmware command fifo processing. Drop dirty tracking code from the fifo rendering code path, it isn't used anyway because vmsvga turns off dirty tracking when leaving standard vga mode. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Message-id: 20170421091632.30900-9-kraxel@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
7fcf0c24e7
commit
104bd1dc70
@ -1118,9 +1118,9 @@ static void vmsvga_update_display(void *opaque)
|
||||
{
|
||||
struct vmsvga_state_s *s = opaque;
|
||||
DisplaySurface *surface;
|
||||
bool dirty = false;
|
||||
|
||||
if (!s->enable) {
|
||||
if (!s->enable || !s->config) {
|
||||
/* in standard vga mode */
|
||||
s->vga.hw_ops->gfx_update(&s->vga);
|
||||
return;
|
||||
}
|
||||
@ -1131,26 +1131,11 @@ static void vmsvga_update_display(void *opaque)
|
||||
vmsvga_fifo_run(s);
|
||||
vmsvga_update_rect_flush(s);
|
||||
|
||||
/*
|
||||
* Is it more efficient to look at vram VGA-dirty bits or wait
|
||||
* for the driver to issue SVGA_CMD_UPDATE?
|
||||
*/
|
||||
if (memory_region_is_logging(&s->vga.vram, DIRTY_MEMORY_VGA)) {
|
||||
vga_sync_dirty_bitmap(&s->vga);
|
||||
dirty = memory_region_get_dirty(&s->vga.vram, 0,
|
||||
surface_stride(surface) * surface_height(surface),
|
||||
DIRTY_MEMORY_VGA);
|
||||
}
|
||||
if (s->invalidated || dirty) {
|
||||
if (s->invalidated) {
|
||||
s->invalidated = 0;
|
||||
dpy_gfx_update(s->vga.con, 0, 0,
|
||||
surface_width(surface), surface_height(surface));
|
||||
}
|
||||
if (dirty) {
|
||||
memory_region_reset_dirty(&s->vga.vram, 0,
|
||||
surface_stride(surface) * surface_height(surface),
|
||||
DIRTY_MEMORY_VGA);
|
||||
}
|
||||
}
|
||||
|
||||
static void vmsvga_reset(DeviceState *dev)
|
||||
|
Loading…
x
Reference in New Issue
Block a user