display: add memory_region_sync_dirty_bitmap calls
These are strictly speaking only needed for KVM and Xen, but it's still nice to be consistent. Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
74259ae55b
commit
5299c0f2cf
@ -106,6 +106,7 @@ static void cg3_update_display(void *opaque)
|
|||||||
pix = memory_region_get_ram_ptr(&s->vram_mem);
|
pix = memory_region_get_ram_ptr(&s->vram_mem);
|
||||||
data = (uint32_t *)surface_data(surface);
|
data = (uint32_t *)surface_data(surface);
|
||||||
|
|
||||||
|
memory_region_sync_dirty_bitmap(&s->vram_mem);
|
||||||
for (y = 0; y < height; y++) {
|
for (y = 0; y < height; y++) {
|
||||||
int update = s->full_update;
|
int update = s->full_update;
|
||||||
|
|
||||||
|
@ -260,6 +260,7 @@ static void g364fb_update_display(void *opaque)
|
|||||||
qemu_console_resize(s->con, s->width, s->height);
|
qemu_console_resize(s->con, s->width, s->height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memory_region_sync_dirty_bitmap(&s->mem_vram);
|
||||||
if (s->ctla & CTLA_FORCE_BLANK) {
|
if (s->ctla & CTLA_FORCE_BLANK) {
|
||||||
g364fb_draw_blank(s);
|
g364fb_draw_blank(s);
|
||||||
} else if (s->depth == 8) {
|
} else if (s->depth == 8) {
|
||||||
|
@ -1322,6 +1322,7 @@ static void sm501_draw_crt(SM501State * s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* draw each line according to conditions */
|
/* draw each line according to conditions */
|
||||||
|
memory_region_sync_dirty_bitmap(&s->local_mem_region);
|
||||||
for (y = 0; y < height; y++) {
|
for (y = 0; y < height; y++) {
|
||||||
int update_hwc = draw_hwc_line ? within_hwc_y_range(s, y, 1) : 0;
|
int update_hwc = draw_hwc_line ? within_hwc_y_range(s, y, 1) : 0;
|
||||||
int update = full_update || update_hwc;
|
int update = full_update || update_hwc;
|
||||||
|
@ -353,6 +353,7 @@ static void tcx_update_display(void *opaque)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memory_region_sync_dirty_bitmap(&ts->vram_mem);
|
||||||
for (y = 0; y < ts->height; page += TARGET_PAGE_SIZE) {
|
for (y = 0; y < ts->height; page += TARGET_PAGE_SIZE) {
|
||||||
if (memory_region_get_dirty(&ts->vram_mem, page, TARGET_PAGE_SIZE,
|
if (memory_region_get_dirty(&ts->vram_mem, page, TARGET_PAGE_SIZE,
|
||||||
DIRTY_MEMORY_VGA)) {
|
DIRTY_MEMORY_VGA)) {
|
||||||
@ -446,6 +447,7 @@ static void tcx24_update_display(void *opaque)
|
|||||||
dd = surface_stride(surface);
|
dd = surface_stride(surface);
|
||||||
ds = 1024;
|
ds = 1024;
|
||||||
|
|
||||||
|
memory_region_sync_dirty_bitmap(&ts->vram_mem);
|
||||||
for (y = 0; y < ts->height; page += TARGET_PAGE_SIZE,
|
for (y = 0; y < ts->height; page += TARGET_PAGE_SIZE,
|
||||||
page24 += TARGET_PAGE_SIZE, cpage += TARGET_PAGE_SIZE) {
|
page24 += TARGET_PAGE_SIZE, cpage += TARGET_PAGE_SIZE) {
|
||||||
if (tcx24_check_dirty(ts, page, page24, cpage)) {
|
if (tcx24_check_dirty(ts, page, page24, cpage)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user