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;