[Spice-devel] [PATCH spice-server 1/2] gl: fix client mouse mode

Frediano Ziglio fziglio at redhat.com
Thu Sep 7 12:43:24 UTC 2017



> 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.
> 
> My patch was updating reds_update_client_mouse_allowed() which I think was a
> better place to do cursor business.
> 
> Furthermore, it didn't mess with QXL/2D state.
> 
> > 
> > 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 b556428d2..a003052ca 100644
> > --- a/server/red-qxl.c
> > +++ b/server/red-qxl.c
> > @@ -873,6 +873,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;
> 
> I didn't need to touch qxl-state. Not sure what would be the side effect of
> all this changes, and how they related to the problem.
>  
> > +
> > +    reds_update_client_mouse_allowed(qxl_state->reds);
> >  }
> >  
> >  SPICE_GNUC_VISIBLE

Looks like you keep saying the same comments and I keep answering
the same things.
I already explained my reasoning and you had never been able to
raise any issue on this approach while you never been able to
confute mine.

Frediano


More information about the Spice-devel mailing list