[Spice-devel] qxl and page flip

Frediano Ziglio fziglio at redhat.com
Wed Oct 4 10:56:07 UTC 2017


> 
> Hi,
> 
> qxl kms driver has been converted over to atomic mode setting recently.
>  Caused some problems, most are fixed meanwhile.
> 
> See https://bugzilla.kernel.org/show_bug.cgi?id=196777
> 
> One pretty fundamental issue sticks though:  The qxl virtual hardware
> doesn't support pageflip (see comment 11 in the bug linked above).
> Which is a problem for wayland because it is a heavy pageflip user.
> 
> The kernel driver has to go though a destroy-primary-surface + create-
> primary-surface cycle, which causes visible flicker because spice
> client goes into "waiting for display ..." mode temporarily.
> 
> So, the options I see are:
> 
>  (1) Declare qxl deprecated, promote virtio-vga instead.
> 
>  (2) Pimp the qxl hardware, add page-flip support.  Requires changes
>      in spice-server (due to lazy rendering), qemu qxl emulation and
>      guest kernel driver.  Should be transparent to spice-client and
>      guest userspace (aka xorg qxl driver).
> 
>  (3) Paper over the issue in the spice client, i.e. only go into
>      "waiting for display ..." mode in case the destroy-primary-
>      surface message isn't followed by a create-primary-surface
>      message within a short timeframe.
> 
> Comments?  Other suggestions?
> 
> cheers,
>   Gerd
> 

I don't think that supporting page flipping in QXL would be hard.
Would just requires to support calling create surface having a
surface and detecting that only the pointer changes.
Requires an extra capability flag as old servers are not compatible
but seems a good way.

Frediano


More information about the Spice-devel mailing list