diff --git a/hw/framebuffer.c b/hw/framebuffer.c index ea122fb266..f4747cd646 100644 --- a/hw/framebuffer.c +++ b/hw/framebuffer.c @@ -87,7 +87,7 @@ void framebuffer_update_display( dest += i * dest_row_pitch; for (; i < rows; i++) { - dirty = memory_region_get_dirty(mem, addr, addr + src_width, + dirty = memory_region_get_dirty(mem, addr, src_width, DIRTY_MEMORY_VGA); if (dirty || invalidate) { fn(opaque, dest, src, cols, dest_col_pitch); diff --git a/hw/sm501.c b/hw/sm501.c index 94c0abf4cb..786e07629c 100644 --- a/hw/sm501.c +++ b/hw/sm501.c @@ -1327,8 +1327,8 @@ static void sm501_draw_crt(SM501State * s) ram_addr_t page1 = offset + width * src_bpp - 1; /* check dirty flags for each line */ - update = memory_region_get_dirty(&s->local_mem_region, page0, page1, - DIRTY_MEMORY_VGA); + update = memory_region_get_dirty(&s->local_mem_region, page0, + page1 - page0, DIRTY_MEMORY_VGA); /* draw line and change status */ if (update) { diff --git a/hw/vga.c b/hw/vga.c index d87c4f9f5b..d27700d41b 100644 --- a/hw/vga.c +++ b/hw/vga.c @@ -1779,7 +1779,7 @@ static void vga_draw_graphic(VGACommonState *s, int full_update) } page0 = addr; page1 = addr + bwidth - 1; - update = memory_region_get_dirty(&s->vram, page0, page1, + update = memory_region_get_dirty(&s->vram, page0, page1 - page0, DIRTY_MEMORY_VGA); /* explicit invalidation for the hardware cursor */ update |= (s->invalidated_y_table[y >> 5] >> (y & 0x1f)) & 1;