@@ -1304,7 +1304,7 @@ static void vga_draw_text(VGACommonState *s, int full_update)
uint32_t *ch_attr_ptr;
vga_draw_glyph8_func *vga_draw_glyph8;
vga_draw_glyph9_func *vga_draw_glyph9;
- int64_t now = qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL);
+ int64_t now = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
/* compute font data address (in plane 2) */
v = s->sr[VGA_SEQ_CHARACTER_MAP];
@@ -1906,7 +1906,7 @@ static void vga_update_display(void *opaque)
}
if (graphic_mode != s->graphic_mode) {
s->graphic_mode = graphic_mode;
- s->cursor_blink_time = qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL);
+ s->cursor_blink_time = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
full_update = 1;
}
switch(graphic_mode) {
This patch changes virtual clock to realtime one in vga_draw_text and vga_update_display functions. Display update process depends on realtime clock. If we read virtual clock there, virtual machine becomes non-deterministic, because every read to virtual clock is written to the replay log. Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> --- hw/display/vga.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)