[Spice-devel] [PATCH spice-server 1/2] gl: fix client mouse mode
Frediano Ziglio
fziglio at redhat.com
Tue Jun 13 14:55:50 UTC 2017
>
> Hi
>
> ----- Original Message -----
> > >
> > > Hi
> > >
> > > ----- Original Message -----
> > > > Since 2.8, QEMU now longer creates QXL primary surfaces when using GL.
> > > > This change broke client-side mouse mode, because Spice server relies
> > > > on
> > > > primary surface conditions.
> > > >
> > > > When GL is enabled, use GL scanout informations.
> > > > Mouse mode is always client when GL surfaces are used.
> > > >
> > > > This patch and most of the message are based on a patch from
> > > > Marc-André Lureau, just moving responsibility from reds to RedQxl.
> > > >
> > > > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > > > ---
> > > > server/red-qxl.c | 7 +++++++
> > > > 1 file changed, 7 insertions(+)
> > > >
> > > > diff --git a/server/red-qxl.c b/server/red-qxl.c
> > > > index 53f3338..896bb76 100644
> > > > --- a/server/red-qxl.c
> > > > +++ b/server/red-qxl.c
> > > > @@ -883,6 +883,13 @@ void spice_qxl_gl_scanout(QXLInstance *qxl,
> > > > /* FIXME: find a way to coallesce all pending SCANOUTs */
> > > > dispatcher_send_message(qxl_state->dispatcher,
> > > > RED_WORKER_MESSAGE_GL_SCANOUT, &payload);
> > > > +
> > > > + qxl_state->x_res = width;
> > > > + qxl_state->y_res = height;
> > > > + qxl_state->use_hardware_cursor = TRUE;
> > > > + qxl_state->primary_active = TRUE;
> > >
> > > Are those values restored when switching back to QXL-2D?
> > >
> > >
> >
> > What do you mean? Suspend/resume, reboot or other cases?
>
> Yes, with older qemu version <2.8, or depending on how the server is used,
> you may switch freely from/to GL/2D etc.
>
> With qemu, this happens before virgl driver is enabled, so across reboots.
>
> I am worried about mixing the state of GL/QXL with 2D/QXL.
>
In all versions Qemu create a new primary surface before sending any 2D command
(tested and checked code).
As current version destroy the surface I doubt in the future will send 2D
command before creating the primary surface again (would be an error).
I think this state transitions should be documented in some way.
Frediano
More information about the Spice-devel
mailing list