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@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel