On 04/25/2014 02:39 AM, Gerd Hoffmann wrote:
>   Hi,
> 
>> ui/console.c:qmp_screendump attempts to handle this by calling
>> graphic_hw_update, but qxl handle's that asynchronously, and it isn't
>> run until after the first screendump is performed. That's why the second
>> screendump is correct.
> 
> Known issue.  The graphic_hw_update makes sure it works sort-of ok when
> you do snapshorts regularly (popular use case: autotest).  It's band
> aid, but still better than nothing.
> 
>> Fix this by triggering qxl_render_update whenever a non-vga surface is
>> created.
> 
> That only catches a small fraction of the problem.  You'll still face
> the very same issue shortly thereafter.  Start firefox in your guest,
> then do two snapshots again.  Different variant of the same bug: no
> firefox window on the first snapshot.  And this patch doesn't help.
> 

In fact I tried that exact test before sending the patch, but the screenshot
seemed up to date. But using something like xdaliclock clearly shows the
outdated surface data.

> We'll basically need a better snapshot command, but qmp lacks
> infrastructure.  We'll need something like blockjobs, but more general
> and not limited to the block layer.  Then you can kick off the
> screenshot request as job, get notified on completion, and we can get
> the qxl case right then.

Makes sense, thanks.

- Cole

Reply via email to