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