qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: Extremely slow graphic updates


From: Stefano Stabellini
Subject: Re: [Qemu-devel] Re: Extremely slow graphic updates
Date: Tue, 20 Jan 2009 19:38:03 +0000
User-agent: Thunderbird 2.0.0.14 (X11/20080505)

Lennart Sorensen wrote:

> On Tue, Jan 20, 2009 at 06:16:59PM +0000, Stefano Stabellini wrote:
>> At risk of being silly, why don't you just use vnc to connect to qemu,
>> if qemu is running on a remote machine?
>> Obviously sdl is optimized for the local case.
> 
> Well at the moment, openbios doesn't display when you use vnc by itself.
> Someone else said they could confirm that, and it had something to do
> with a display timer not being initialized.


I don't have a proper fix for that but if you apply the patch I attached
it should work.

If the gui_timer is not initialized qemu gets stuck in vl.c:main_loop
at the following line:

ret = cpu_exec(env);

maybe someone that works on qemu ppc emulation could help.


>> Of course if it is slow even locally, then there must be something wrong
>> somewhere either in qemu or in sdl.
> 
> Well I wasn't the one that saw it slow locally.
> 
> Now does the change in 6336 make it faster on the local side for some
> people?  if so, then I guess there is some potential there.



If you are using vnc and the guest uses 16 or 32 bpp it is faster; if
the guest is using another resolution it is as fast as before.

The sdl backend now uses sdl blitting functions to render the
framebuffer: the code is much cleaner but it may suffer a performance
loss if the guest does not use 16bpp or 32bpp (text mode for example).
Otherwise it is as fast as before (maybe even faster with some drivers).

I wasn't expecting the performance loss to be noticeable, I'll try to
come up with a clean improvement to the new interface.


> Is there some environment that can be set to tell SDL what driver to use
> and how to behave?
> 



SDL_VIDEODRIVER but usually it only works with x11, the default.

diff --git a/vl.c b/vl.c
index 63d954b..2e84dce 100644
--- a/vl.c
+++ b/vl.c
@@ -5553,14 +5553,8 @@ int main(int argc, char **argv, char **envp)
     }
     dpy_resize(ds);
 
-    dcl = ds->listeners;
-    while (dcl != NULL) {
-        if (dcl->dpy_refresh != NULL) {
-            ds->gui_timer = qemu_new_timer(rt_clock, gui_update, ds);
-            qemu_mod_timer(ds->gui_timer, qemu_get_clock(rt_clock));
-        }
-        dcl = dcl->next;
-    }
+    ds->gui_timer = qemu_new_timer(rt_clock, gui_update, ds);
+    qemu_mod_timer(ds->gui_timer, qemu_get_clock(rt_clock));
 
     text_consoles_set_display(display_state);
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]