vga: move dirty memory region code together

Take into account split screen mode close to wrap around, which is the
other special case for dirty memory region computation.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2024-04-02 13:27:59 +02:00
parent ab75ecb79b
commit f89761d349

View file

@ -1596,6 +1596,10 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
region_end = s->vbe_size;
force_shadow = true;
}
if (s->params.line_compare < height) {
/* split screen mode */
region_start = 0;
}
/*
* Check whether we can share the surface with the backend
@ -1667,10 +1671,6 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
y1 = 0;
if (!full_update) {
if (s->params.line_compare < height) {
/* split screen mode */
region_start = 0;
}
snap = memory_region_snapshot_and_clear_dirty(&s->vram, region_start,
region_end - region_start,
DIRTY_MEMORY_VGA);