virtio-gpu-virgl: Add support for virgl video acceleration

Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn>
This commit is contained in:
Feng Jiang 2024-09-27 10:04:38 +08:00
parent 8c9efa53c0
commit d50a8c9e99
1 changed files with 8 additions and 0 deletions

View File

@ -14,6 +14,7 @@
#include "qemu/osdep.h"
#include "qemu/error-report.h"
#include "qemu/iov.h"
#include "qemu/drm.h"
#include "trace.h"
#include "hw/virtio/virtio.h"
#include "hw/virtio/virtio-gpu.h"
@ -563,12 +564,18 @@ static int virgl_make_context_current(void *opaque, int scanout_idx,
qctx);
}
static int virgl_get_drm_fd(void *opaque)
{
return qemu_drm_rendernode_open(NULL);
}
static struct virgl_renderer_callbacks virtio_gpu_3d_cbs = {
.version = 1,
.write_fence = virgl_write_fence,
.create_gl_context = virgl_create_context,
.destroy_gl_context = virgl_destroy_context,
.make_current = virgl_make_context_current,
.get_drm_fd = virgl_get_drm_fd,
};
static void virtio_gpu_print_stats(void *opaque)
@ -638,6 +645,7 @@ int virtio_gpu_virgl_init(VirtIOGPU *g)
flags |= VIRGL_RENDERER_D3D11_SHARE_TEXTURE;
}
#endif
flags |= VIRGL_RENDERER_USE_VIDEO;
ret = virgl_renderer_init(g, flags, &virtio_gpu_3d_cbs);
if (ret != 0) {