Mesa (main): venus: fix empty submits with BOs

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jul 8 22:04:51 UTC 2021


Module: Mesa
Branch: main
Commit: d0fa4933b78974d737c5e8abd0c4a64aeb7b93f3
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d0fa4933b78974d737c5e8abd0c4a64aeb7b93f3

Author: Chia-I Wu <olvaffe at gmail.com>
Date:   Thu Jul  8 14:08:55 2021 -0700

venus: fix empty submits with BOs

Empty submits with BOs (!batch_count && bo_count) were incorrectly
skipped.

Signed-off-by: Chia-I Wu <olvaffe at gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11791>

---

 src/virtio/vulkan/vn_renderer_virtgpu.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/virtio/vulkan/vn_renderer_virtgpu.c b/src/virtio/vulkan/vn_renderer_virtgpu.c
index 80f2fff166f..5b6a25cdf8b 100644
--- a/src/virtio/vulkan/vn_renderer_virtgpu.c
+++ b/src/virtio/vulkan/vn_renderer_virtgpu.c
@@ -542,6 +542,17 @@ sim_submit(struct virtgpu *gpu, const struct vn_renderer_submit *submit)
       }
    }
 
+   if (!submit->batch_count && submit->bo_count) {
+      struct drm_virtgpu_execbuffer args = {
+         .bo_handles = (uintptr_t)gem_handles,
+         .num_bo_handles = submit->bo_count,
+      };
+
+      ret = drmIoctl(gpu->fd, DRM_IOCTL_VIRTGPU_EXECBUFFER, &args);
+      if (ret)
+         vn_log(gpu->instance, "failed to execbuffer: %s", strerror(errno));
+   }
+
    free(gem_handles);
 
    return ret;



More information about the mesa-commit mailing list