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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]