Hey, On Sun, Nov 02, 2014 at 10:24:13PM +0100, Marc-André Lureau wrote: > The multimedia time is defined by the server side monotonic time [1], > but the drawing time-stamp is done in guest side, so it requires > synchronization between host and guest. This is expensive, when no audio > is playing, there is a ~30x/sec wakeup to update the qxl device mmtime, > and it requires marking dirty the rom region. I guess this could be used somehow to detect when images are taking a long time to get drawn in the guest, but doing things the way they currently are does not seem to be useful indeed. > > Instead, the video timestamping can be done more efficiently on server > side, without visible drawbacks. I think this could go a step further, and mm_time could be set as below rather than in process_commands. Maybe RedDrawable::mm_time could even be removed. diff --git a/server/red_worker.c b/server/red_worker.c index 8b4edd0..695db5e 100644 --- a/server/red_worker.c +++ b/server/red_worker.c @@ -8477,10 +8477,7 @@ static inline int red_marshall_stream_data(RedChannelClient *rcc, } } - /* workaround for vga streams */ - frame_mm_time = drawable->red_drawable->mm_time ? - drawable->red_drawable->mm_time : - reds_get_mm_time(); + frame_mm_time = reds_get_mm_time(); outbuf_size = dcc->send_data.stream_outbuf_size; ret = mjpeg_encoder_start_frame(agent->mjpeg_encoder, image->u.bitmap.format, width, height, Christophe
Attachment:
pgp1gJ1h66Cjr.pgp
Description: PGP signature
_______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel