diff mbox series

[for-9.1,6/4] vga: move dirty memory region code together

Message ID 20240402113408.18048-7-pbonzini@redhat.com
State New
Headers show
Series vga: fix assertion failure with 4- and 16-color modes | expand

Commit Message

Paolo Bonzini April 2, 2024, 11:34 a.m. UTC
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>
---
 hw/display/vga.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/hw/display/vga.c b/hw/display/vga.c
index 77d709a3d69..e91a76bf76b 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -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);