qemu-devel
[Top][All Lists]
Advanced

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

[PATCH 18/27] vhost-user-gpu: add vg_send_dmabuf_update()


From: marcandre . lureau
Subject: [PATCH 18/27] vhost-user-gpu: add vg_send_dmabuf_update()
Date: Fri, 12 Mar 2021 14:00:59 +0400

From: Marc-André Lureau <marcandre.lureau@redhat.com>

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 contrib/vhost-user-gpu/vugpu.h          |  6 +++++
 contrib/vhost-user-gpu/vhost-user-gpu.c | 32 +++++++++++++++----------
 contrib/vhost-user-gpu/virgl.c          | 11 +--------
 3 files changed, 27 insertions(+), 22 deletions(-)

diff --git a/contrib/vhost-user-gpu/vugpu.h b/contrib/vhost-user-gpu/vugpu.h
index 759de56502..f2e80d255d 100644
--- a/contrib/vhost-user-gpu/vugpu.h
+++ b/contrib/vhost-user-gpu/vugpu.h
@@ -188,5 +188,11 @@ void    vg_send_dmabuf_scanout(VuGpu *g,
                                int fd_drm_fourcc,
                                uint32_t fd_flags,
                                int fd);
+void    vg_send_dmabuf_update(VuGpu *g,
+                              uint32_t scanout_id,
+                              uint32_t x,
+                              uint32_t y,
+                              uint32_t width,
+                              uint32_t height);
 
 #endif
diff --git a/contrib/vhost-user-gpu/vhost-user-gpu.c 
b/contrib/vhost-user-gpu/vhost-user-gpu.c
index 8c3ee8aad8..fc8e62f20e 100644
--- a/contrib/vhost-user-gpu/vhost-user-gpu.c
+++ b/contrib/vhost-user-gpu/vhost-user-gpu.c
@@ -618,6 +618,25 @@ vg_send_dmabuf_scanout(VuGpu *g,
     vg_send_msg(g, &msg, fd);
 }
 
+void
+vg_send_dmabuf_update(VuGpu *g,
+                      uint32_t scanout_id,
+                      uint32_t x,
+                      uint32_t y,
+                      uint32_t width,
+                      uint32_t height)
+{
+    VhostUserGpuMsg msg = {
+        .request = VHOST_USER_GPU_DMABUF_UPDATE,
+        .size = sizeof(VhostUserGpuUpdate),
+        .payload.update.scanout_id = scanout_id,
+        .payload.update.x = x,
+        .payload.update.y = y,
+        .payload.update.width = width,
+        .payload.update.height = height
+    };
+    vg_send_msg(g, &msg, -1);
+}
 
 static void
 vg_set_scanout(VuGpu *g,
@@ -765,18 +784,7 @@ vg_resource_flush(VuGpu *g,
         size_t height = extents->y2 - extents->y1;
 
         if (vugbm_buffer_can_get_dmabuf_fd(&res->buffer)) {
-            VhostUserGpuMsg vmsg = {
-                .request = VHOST_USER_GPU_DMABUF_UPDATE,
-                .size = sizeof(VhostUserGpuUpdate),
-                .payload.update = (VhostUserGpuUpdate) {
-                    .scanout_id = i,
-                    .x = extents->x1,
-                    .y = extents->y1,
-                    .width = width,
-                    .height = height,
-                }
-            };
-            vg_send_msg(g, &vmsg, -1);
+            vg_send_dmabuf_update(g, i, extents->x1, extents->y1, width, 
height);
             vg_wait_ok(g);
         } else {
             size_t bpp =
diff --git a/contrib/vhost-user-gpu/virgl.c b/contrib/vhost-user-gpu/virgl.c
index 0c7f118556..b17cf22986 100644
--- a/contrib/vhost-user-gpu/virgl.c
+++ b/contrib/vhost-user-gpu/virgl.c
@@ -370,16 +370,7 @@ virgl_cmd_resource_flush(VuGpu *g,
         if (g->scanout[i].resource_id != rf.resource_id) {
             continue;
         }
-        VhostUserGpuMsg msg = {
-            .request = VHOST_USER_GPU_DMABUF_UPDATE,
-            .size = sizeof(VhostUserGpuUpdate),
-            .payload.update.scanout_id = i,
-            .payload.update.x = rf.r.x,
-            .payload.update.y = rf.r.y,
-            .payload.update.width = rf.r.width,
-            .payload.update.height = rf.r.height
-        };
-        vg_send_msg(g, &msg, -1);
+        vg_send_dmabuf_update(g, i, rf.r.x, rf.r.y, rf.r.width, rf.r.height);
         vg_wait_ok(g);
     }
 }
-- 
2.29.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]