Hi On Fri, Feb 19, 2016 at 10:14 AM, Gerd Hoffmann <kraxel@xxxxxxxxxx> wrote: > Signed-off-by: Gerd Hoffmann <kraxel@xxxxxxxxxx> > --- > include/ui/spice-display.h | 1 + > ui/spice-display.c | 30 ++++++++++++++++++++++++++++++ > 2 files changed, 31 insertions(+) > Could eventually be squashed with "add opengl/virgl/dmabuf support" patch Reviewed-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> > diff --git a/include/ui/spice-display.h b/include/ui/spice-display.h > index dd9cf6f..f9388c2 100644 > --- a/include/ui/spice-display.h > +++ b/include/ui/spice-display.h > @@ -71,6 +71,7 @@ typedef struct QXLCookie { > QXLRect area; > int redraw; > } render; > + void *data; > } u; > } QXLCookie; > > diff --git a/ui/spice-display.c b/ui/spice-display.c > index 96beb02..34e6d51 100644 > --- a/ui/spice-display.c > +++ b/ui/spice-display.c > @@ -660,6 +660,11 @@ static void interface_async_complete(QXLInstance *sin, uint64_t cookie_token) > qemu_bh_schedule(ssd->gl_unblock_bh); > break; > } > + case QXL_COOKIE_TYPE_IO: > + if (cookie->io == QXL_IO_MONITORS_CONFIG_ASYNC) { > + g_free(cookie->u.data); > + } > + break; > #endif > default: > /* should never be called, used in qxl native mode only */ > @@ -795,6 +800,29 @@ static const DisplayChangeListenerOps display_listener_ops = { > > #ifdef HAVE_SPICE_GL > > +static void qemu_spice_gl_monitor_config(SimpleSpiceDisplay *ssd, > + int x, int y, int w, int h) > +{ > + QXLMonitorsConfig *config; > + QXLCookie *cookie; > + > + config = g_malloc0(sizeof(QXLMonitorsConfig) + sizeof(QXLHead)); > + config->count = 1; > + config->max_allowed = 1; > + config->heads[0].x = x; > + config->heads[0].y = y; > + config->heads[0].width = w; > + config->heads[0].height = h; > + cookie = qxl_cookie_new(QXL_COOKIE_TYPE_IO, > + QXL_IO_MONITORS_CONFIG_ASYNC); > + cookie->u.data = config; > + > + spice_qxl_monitors_config_async(&ssd->qxl, > + (uintptr_t)config, > + MEMSLOT_GROUP_HOST, > + (uintptr_t)cookie); > +} > + > static void qemu_spice_gl_block(SimpleSpiceDisplay *ssd, bool block) > { > uint64_t timeout; > @@ -934,6 +962,8 @@ static void qemu_spice_gl_scanout(DisplayChangeListener *dcl, > surface_width(ssd->ds), > surface_height(ssd->ds), > stride, fourcc, y_0_top); > + > + qemu_spice_gl_monitor_config(ssd, x, y, w, h); > } > > static void qemu_spice_gl_update(DisplayChangeListener *dcl, > -- > 1.8.3.1 > -- Marc-André Lureau _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel