mirror of https://github.com/xemu-project/xemu.git
cirrus: wrap memory update in a transaction
This prevents spurious unmapping and remapping of the vga windows, which reduces performance. Reviewed-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
20e5758b08
commit
cf9182e229
|
@ -2424,6 +2424,7 @@ static void cirrus_update_memory_access(CirrusVGAState *s)
|
||||||
{
|
{
|
||||||
unsigned mode;
|
unsigned mode;
|
||||||
|
|
||||||
|
memory_region_transaction_begin();
|
||||||
if ((s->vga.sr[0x17] & 0x44) == 0x44) {
|
if ((s->vga.sr[0x17] & 0x44) == 0x44) {
|
||||||
goto generic_io;
|
goto generic_io;
|
||||||
} else if (s->cirrus_srcptr != s->cirrus_srcptr_end) {
|
} else if (s->cirrus_srcptr != s->cirrus_srcptr_end) {
|
||||||
|
@ -2443,6 +2444,7 @@ static void cirrus_update_memory_access(CirrusVGAState *s)
|
||||||
unmap_linear_vram(s);
|
unmap_linear_vram(s);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
memory_region_transaction_commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue