[Spice-devel] [Qemu-devel] [PATCH v2 10/12] spice/gl: create dummy primary surface (RfC)

Marc-André Lureau mlureau at redhat.com
Tue May 24 19:34:24 UTC 2016


Hi

----- Original Message -----
> On Mo, 2016-05-23 at 16:03 +0200, Marc-André Lureau wrote:
> > Hi
> > 
> > On Mon, May 23, 2016 at 3:52 PM, Gerd Hoffmann <kraxel at redhat.com> wrote:
> > >   Hi,
> > >
> > > Resuming to work on this after 2.6 freeze break ...
> > >
> > >> I have done some more testing and sent a series for spice-gtk fixing
> > >> display with gl scanout-only case. And a minor patch to spice server
> > >> to solve a cursor initialization when there is no canvas.
> 
> What is the upstream status of this?  Built a bunch of fresh packages
> today, including new spice-server and spice-gtk from master branch.  And
> a bunch spice-gtk dependencies, due to soname change.  Still not working
> without the dummy primary surface.

spicy from master works for me. However I found an issue with virt-viewer, due to delayed widget realize in this gl-only case, see: https://lists.freedesktop.org/archives/spice-devel/2016-May/029446.html

> 
> > >> (process:21117): Spice-CRITICAL **:
> > >> red-qxl.c:900:spice_qxl_gl_draw_async: condition
> > >> `qxl_state->scanout.drm_dma_buf_fd != -1' failed
> 
> > I can't really make sense of a call to spice_qxl_gl_draw_async() if
> > there is no scanout backing. So I can imagine the fix is on qemu side.
> 
> Indeed.  That one should be fixed now.

Thanks

> 
> > Do you have an up to date branch for testing?
> 
> Pushed fresh branch to the usual work/virgl location.

I found a cursor issue, due to spice worker being idle, and this solves it: What do you think?

commit bae34dde7b229cc87347639ac34d835b80725e1f
Author: Marc-André Lureau <marcandre.lureau at redhat.com>
Date:   Tue May 24 20:34:05 2016 +0200

    spice: wakeup worker to pick up mouse changes
    
    Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>

diff --git a/ui/spice-display.c b/ui/spice-display.c
index 5ed7630..a04432c 100644
--- a/ui/spice-display.c
+++ b/ui/spice-display.c
@@ -766,6 +766,7 @@ static void display_mouse_set(DisplayChangeListener *dcl,
     g_free(ssd->ptr_move);
     ssd->ptr_move = qemu_spice_create_cursor_update(ssd, NULL, on);
     qemu_mutex_unlock(&ssd->lock);
+    qemu_spice_wakeup(ssd);
 }
 
 static void display_mouse_define(DisplayChangeListener *dcl,
@@ -784,6 +785,7 @@ static void display_mouse_define(DisplayChangeListener *dcl,
     g_free(ssd->ptr_define);
     ssd->ptr_define = qemu_spice_create_cursor_update(ssd, c, 0);
     qemu_mutex_unlock(&ssd->lock);
+    qemu_spice_wakeup(ssd);
 }
 
 static const DisplayChangeListenerOps display_listener_ops = {


More information about the Spice-devel mailing list