[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