]> Git Repo - qemu.git/commitdiff
spice: add scanout_dmabuf support
authorGerd Hoffmann <[email protected]>
Thu, 8 Mar 2018 09:06:16 +0000 (10:06 +0100)
committerGerd Hoffmann <[email protected]>
Mon, 12 Mar 2018 08:01:53 +0000 (09:01 +0100)
Add support for scanout dmabufs.  Just
pass them through to spice-server.

Signed-off-by: Gerd Hoffmann <[email protected]>
Reviewed-by: Marc-AndrĂ© Lureau <[email protected]>
Message-id: 20180308090618[email protected]

ui/spice-display.c

index 79ea4df02ccaefe86c07c90dea43e6d7dd4f4468..4c33c92ae555dd04e9986cd25dd541a6cc35e1e5 100644 (file)
@@ -936,6 +936,20 @@ static void qemu_spice_gl_scanout_texture(DisplayChangeListener *dcl,
     ssd->have_scanout = true;
 }
 
+static void qemu_spice_gl_scanout_dmabuf(DisplayChangeListener *dcl,
+                                         QemuDmaBuf *dmabuf)
+{
+    SimpleSpiceDisplay *ssd = container_of(dcl, SimpleSpiceDisplay, dcl);
+
+    /* note: spice server will close the fd, so hand over a dup */
+    spice_qxl_gl_scanout(&ssd->qxl, dup(dmabuf->fd),
+                         dmabuf->width, dmabuf->height,
+                         dmabuf->stride, dmabuf->fourcc, false);
+    qemu_spice_gl_monitor_config(ssd, 0, 0, dmabuf->width, dmabuf->height);
+    ssd->have_surface = false;
+    ssd->have_scanout = true;
+}
+
 static void qemu_spice_gl_update(DisplayChangeListener *dcl,
                                  uint32_t x, uint32_t y, uint32_t w, uint32_t h)
 {
@@ -969,6 +983,7 @@ static const DisplayChangeListenerOps display_listener_gl_ops = {
 
     .dpy_gl_scanout_disable  = qemu_spice_gl_scanout_disable,
     .dpy_gl_scanout_texture  = qemu_spice_gl_scanout_texture,
+    .dpy_gl_scanout_dmabuf   = qemu_spice_gl_scanout_dmabuf,
     .dpy_gl_update           = qemu_spice_gl_update,
 };
 
This page took 0.02363 seconds and 4 git commands to generate.