On 2012-02-04 18:39, Blue Swirl wrote: > Fix confusion in length calculation in commit > cd7a45c95ecf2404810f3c6becb7cb83c5010ad8. > > Reported-by: Jan Kiszka <jan.kis...@web.de> > Signed-off-by: Blue Swirl <blauwir...@gmail.com> > --- > hw/framebuffer.c | 2 +- > hw/sm501.c | 4 ++-- > hw/vga.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/hw/framebuffer.c b/hw/framebuffer.c > index ea122fb..f4747cd 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 94c0abf..786e076 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 d87c4f9..d27700d 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;
Nope, doesn't help yet. It's particularly bad with the SDL GUI. Jan
signature.asc
Description: OpenPGP digital signature