mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
optimize screendump for the common non-switch case
switch console only if needed, also pass down whenever the console was switched or not because a displaysurface redraw is only needed in case the console was switched. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
1673510204
commit
45efb16124
9 changed files with 34 additions and 21 deletions
10
console.c
10
console.c
|
@ -176,19 +176,23 @@ void vga_hw_invalidate(void)
|
|||
void vga_hw_screen_dump(const char *filename)
|
||||
{
|
||||
TextConsole *previous_active_console;
|
||||
bool cswitch;
|
||||
|
||||
previous_active_console = active_console;
|
||||
cswitch = previous_active_console && previous_active_console->index != 0;
|
||||
|
||||
/* There is currently no way of specifying which screen we want to dump,
|
||||
so always dump the first one. */
|
||||
console_select(0);
|
||||
if (cswitch) {
|
||||
console_select(0);
|
||||
}
|
||||
if (consoles[0] && consoles[0]->hw_screen_dump) {
|
||||
consoles[0]->hw_screen_dump(consoles[0]->hw, filename);
|
||||
consoles[0]->hw_screen_dump(consoles[0]->hw, filename, cswitch);
|
||||
} else {
|
||||
error_report("screen dump not implemented");
|
||||
}
|
||||
|
||||
if (previous_active_console) {
|
||||
if (cswitch) {
|
||||
console_select(previous_active_console->index);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue