vga: do not treat horiz pel panning value of 8 as "enabled"
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 2 Apr 2024 10:26:36 +0000 (12:26 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 2 Apr 2024 16:08:59 +0000 (18:08 +0200)
Horizontal pel panning bit 3 is only used in text mode.  In graphics
mode, it can be treated as if it was zero, thus not extending the
dirty memory region.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/display/vga.c

index 40acd19e72ab1415db777953959355b368a34a89..77f59e8c1136a2034cf4e5aa100120edb857b483 100644 (file)
@@ -1571,7 +1571,9 @@ static void vga_draw_graphic(VGACommonState *s, int full_update)
             break;
         }
     }
-    hpel = bits <= 8 ? s->params.hpel : 0;
+
+    /* Horizontal pel panning bit 3 is only used in text mode.  */
+    hpel = bits <= 8 ? s->params.hpel & 7 : 0;
 
     region_start = (s->params.start_addr * 4);
     region_end = region_start + (ram_addr_t)s->params.line_offset * height;