aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2024-04-02 12:26:36 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2024-04-02 18:08:59 +0200
commit1d1ee7e0a1b7041804e8c5f8c2453fdc2df0407e (patch)
treeadbe2bff80169abec443a542c7a2b846138e0e84
parent3b6d2b1962b23295c463f010ff88eb5a594f2ef9 (diff)
downloadqemu-1d1ee7e0a1b7041804e8c5f8c2453fdc2df0407e.zip
qemu-1d1ee7e0a1b7041804e8c5f8c2453fdc2df0407e.tar.gz
qemu-1d1ee7e0a1b7041804e8c5f8c2453fdc2df0407e.tar.bz2
vga: do not treat horiz pel panning value of 8 as "enabled"
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>
-rw-r--r--hw/display/vga.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/display/vga.c b/hw/display/vga.c
index 40acd19..77f59e8 100644
--- a/hw/display/vga.c
+++ b/hw/display/vga.c
@@ -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;