On Tue, Oct 11, 2016 at 04:56:42PM +0200, Pavel Grunt wrote:
> On Tue, 2016-10-11 at 10:36 -0400, Marc-André Lureau wrote:
> > > 
> > > Flickering is PRIMARY_DESTROY & PRIMARY_CREATE
> > 
> > Is there a way to prevent DESTROY & CREATE of same size on
> > server/guest side? why not?
> 
> The problem is that it is not the same size, since client requests 401
> and driver creates 400.
> 
> Maybe it would be possible to delay the DESTROY to the moment the new
> surface is created and send it, as you said, only if there is a
> change.

For what it's worth, this PRIMARY_DESTROY/PRIMARY_CREATE seems to be
more of a side-effect of how mutter/clutter do the resizing (using
drmModeRmFB/drmModeAddFB) than being related to that size difference.

Destroying the framebuffer used kernel-side causes the subsequent
drmModeSetCrtc call to trigger a full modeset without checking if it's
the same as the current mode. This also causes qxl_crtc_mode_set to emit
a DESTROY/CREATE pair as the newly created framebuffer is not marked as
being the primary one (not familiar enough with drm/clutter to know
whether that's a reasonable behaviour or not).

Christophe

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to