From a2d69aa8931f657eb6684fff5aa3095a7b481da3 Mon Sep 17 00:00:00 2001 From: Antonio Caggiano <antonio.caggiano@collabora.com> Date: Thu, 15 Sep 2022 10:18:08 +0200 Subject: [PATCH] virtio-gpu: Get EGL Display callback Implement get_egl_display callback for virglrenderer. Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com> --- hw/display/virtio-gpu-virgl.c | 9 ++++++++- meson.build | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/hw/display/virtio-gpu-virgl.c b/hw/display/virtio-gpu-virgl.c index 2c6692d7bea..5a2bd06d0c2 100644 --- a/hw/display/virtio-gpu-virgl.c +++ b/hw/display/virtio-gpu-virgl.c @@ -18,6 +18,7 @@ #include "hw/virtio/virtio-gpu.h" #include "hw/virtio/virtio-gpu-bswap.h" #include "hw/virtio/virtio-iommu.h" +#include <epoxy/egl.h> #include <virglrenderer.h> @@ -735,12 +736,18 @@ static int virgl_make_context_current(void *opaque, int scanout_idx, qctx); } +static void *virgl_get_egl_display(void *opaque) +{ + return eglGetCurrentDisplay(); +} + static struct virgl_renderer_callbacks virtio_gpu_3d_cbs = { - .version = 1, + .version = 4, .write_fence = virgl_write_fence, .create_gl_context = virgl_create_context, .destroy_gl_context = virgl_destroy_context, .make_current = virgl_make_context_current, + .get_egl_display = virgl_get_egl_display, }; static void virtio_gpu_print_stats(void *opaque) diff --git a/meson.build b/meson.build index 462886c1300..6384b57e1d7 100644 --- a/meson.build +++ b/meson.build @@ -718,6 +718,9 @@ if not get_option('virglrenderer').auto() or have_system or have_vhost_user_gpu method: 'pkg-config', required: get_option('virglrenderer'), kwargs: static_kwargs) + virgl = declare_dependency(compile_args: '-DVIRGL_RENDERER_UNSTABLE_APIS', + dependencies: virgl) + config_host_data.set('HAVE_VIRGL_CONTEXT_INIT', cc.has_function('virgl_renderer_context_create_with_flags', -- GitLab