mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 23:33:54 -06:00
ui/console: remove dpy_gfx_update_dirty
dpy_gfx_update_dirty expects DIRTY_MEMORY_VGA logging to be always on, but that will not be the case soon. Because it computes the memory region on the fly for every update (with memory_region_find), it cannot enable/disable logging by itself. We could always treat updates as invalidations if dirty logging is not enabled, assuming that the board will enable logging on the RAM region that includes the framebuffer. However, the function is unused, so just drop it. Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
d55d42078b
commit
42af3e3a02
2 changed files with 0 additions and 65 deletions
61
ui/console.c
61
ui/console.c
|
@ -1619,67 +1619,6 @@ bool dpy_cursor_define_supported(QemuConsole *con)
|
|||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* Call dpy_gfx_update for all dirity scanlines. Works for
|
||||
* DisplaySurfaces backed by guest memory (i.e. the ones created
|
||||
* using qemu_create_displaysurface_guestmem).
|
||||
*/
|
||||
void dpy_gfx_update_dirty(QemuConsole *con,
|
||||
MemoryRegion *address_space,
|
||||
hwaddr base,
|
||||
bool invalidate)
|
||||
{
|
||||
DisplaySurface *ds = qemu_console_surface(con);
|
||||
int width = surface_stride(ds);
|
||||
int height = surface_height(ds);
|
||||
hwaddr size = width * height;
|
||||
MemoryRegionSection mem_section;
|
||||
MemoryRegion *mem;
|
||||
ram_addr_t addr;
|
||||
int first, last, i;
|
||||
bool dirty;
|
||||
|
||||
mem_section = memory_region_find(address_space, base, size);
|
||||
mem = mem_section.mr;
|
||||
if (int128_get64(mem_section.size) != size ||
|
||||
!memory_region_is_ram(mem_section.mr)) {
|
||||
goto out;
|
||||
}
|
||||
assert(mem);
|
||||
|
||||
memory_region_sync_dirty_bitmap(mem);
|
||||
addr = mem_section.offset_within_region;
|
||||
|
||||
first = -1;
|
||||
last = -1;
|
||||
for (i = 0; i < height; i++, addr += width) {
|
||||
dirty = invalidate ||
|
||||
memory_region_get_dirty(mem, addr, width, DIRTY_MEMORY_VGA);
|
||||
if (dirty) {
|
||||
if (first == -1) {
|
||||
first = i;
|
||||
}
|
||||
last = i;
|
||||
}
|
||||
if (first != -1 && !dirty) {
|
||||
assert(last != -1 && last >= first);
|
||||
dpy_gfx_update(con, 0, first, surface_width(ds),
|
||||
last - first + 1);
|
||||
first = -1;
|
||||
}
|
||||
}
|
||||
if (first != -1) {
|
||||
assert(last != -1 && last >= first);
|
||||
dpy_gfx_update(con, 0, first, surface_width(ds),
|
||||
last - first + 1);
|
||||
}
|
||||
|
||||
memory_region_reset_dirty(mem, mem_section.offset_within_region, size,
|
||||
DIRTY_MEMORY_VGA);
|
||||
out:
|
||||
memory_region_unref(mem);
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
/* register display */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue