[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL v2 18/18] ui/dbus: restrict opengl to gbm-enabled config
From: |
Fabiano Rosas |
Subject: |
Re: [PULL v2 18/18] ui/dbus: restrict opengl to gbm-enabled config |
Date: |
Fri, 24 Mar 2023 12:25:06 -0300 |
marcandre.lureau@redhat.com writes:
> From: Marc-André Lureau <marcandre.lureau@redhat.com>
>
> We can enable EGL later for non-GBM hosts.
>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> ui/dbus-listener.c | 10 +++++-----
> ui/dbus.c | 12 +++++++++++-
> 2 files changed, 16 insertions(+), 6 deletions(-)
>
> diff --git a/ui/dbus-listener.c b/ui/dbus-listener.c
> index 85692f1b27..911acdc529 100644
> --- a/ui/dbus-listener.c
> +++ b/ui/dbus-listener.c
> @@ -50,7 +50,7 @@ struct _DBusDisplayListener {
>
> G_DEFINE_TYPE(DBusDisplayListener, dbus_display_listener, G_TYPE_OBJECT)
>
> -#ifdef CONFIG_OPENGL
> +#ifdef CONFIG_GBM
> static void dbus_update_gl_cb(GObject *source_object,
> GAsyncResult *res,
> gpointer user_data)
> @@ -239,7 +239,7 @@ static void dbus_refresh(DisplayChangeListener *dcl)
> graphic_hw_update(dcl->con);
> }
>
> -#ifdef CONFIG_OPENGL
> +#ifdef CONFIG_GBM
> static void dbus_gl_gfx_update(DisplayChangeListener *dcl,
> int x, int y, int w, int h)
> {
> @@ -302,7 +302,7 @@ static void dbus_gfx_update(DisplayChangeListener *dcl,
> DBUS_DEFAULT_TIMEOUT, NULL, NULL, NULL);
> }
>
> -#ifdef CONFIG_OPENGL
> +#ifdef CONFIG_GBM
> static void dbus_gl_gfx_switch(DisplayChangeListener *dcl,
> struct DisplaySurface *new_surface)
> {
> @@ -369,7 +369,7 @@ static void dbus_cursor_define(DisplayChangeListener *dcl,
> NULL);
> }
>
> -#ifdef CONFIG_OPENGL
> +#ifdef CONFIG_GBM
> const DisplayChangeListenerOps dbus_gl_dcl_ops = {
> .dpy_name = "dbus-gl",
> .dpy_gfx_update = dbus_gl_gfx_update,
> @@ -417,7 +417,7 @@ dbus_display_listener_constructed(GObject *object)
> DBusDisplayListener *ddl = DBUS_DISPLAY_LISTENER(object);
>
> ddl->dcl.ops = &dbus_dcl_ops;
> -#ifdef CONFIG_OPENGL
> +#ifdef CONFIG_GBM
> if (display_opengl) {
> ddl->dcl.ops = &dbus_gl_dcl_ops;
> }
> diff --git a/ui/dbus.c b/ui/dbus.c
> index 904f5a0a6d..0513de9918 100644
> --- a/ui/dbus.c
> +++ b/ui/dbus.c
> @@ -47,8 +47,10 @@ static DBusDisplay *dbus_display;
> static QEMUGLContext dbus_create_context(DisplayGLCtx *dgc,
> QEMUGLParams *params)
> {
> +#ifdef CONFIG_GBM
> eglMakeCurrent(qemu_egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
> qemu_egl_rn_ctx);
> +#endif
> return qemu_egl_create_context(dgc, params);
> }
>
> @@ -56,7 +58,11 @@ static bool
> dbus_is_compatible_dcl(DisplayGLCtx *dgc,
> DisplayChangeListener *dcl)
> {
> - return dcl->ops == &dbus_gl_dcl_ops || dcl->ops == &dbus_console_dcl_ops;
> + return
> +#ifdef CONFIG_GBM
> + dcl->ops == &dbus_gl_dcl_ops ||
> +#endif
> + dcl->ops == &dbus_console_dcl_ops;
> }
>
> static void
> @@ -459,7 +465,11 @@ early_dbus_init(DisplayOptions *opts)
> DisplayGLMode mode = opts->has_gl ? opts->gl : DISPLAYGL_MODE_OFF;
>
> if (mode != DISPLAYGL_MODE_OFF) {
> +#ifdef CONFIG_OPENGL
> egl_init(opts->u.dbus.rendernode, mode, &error_fatal);
> +#else
> + error_report("dbus: GL rendering is not supported");
> +#endif
> }
>
> type_register(&dbus_vc_type_info);
With this patch I get:
FAILED: libcommon.fa.p/ui_dbus-listener.c.o
cc -m64 -mcx16 -Ilibcommon.fa.p -Iui -I../ui -I/usr/include/pixman-1 \
-I/usr/include/libpng16 -I/usr/include/spice-server \
-I/usr/include/cacard -I/usr/include/nss3 -I/usr/include/nspr4
-I/usrc
../ui/dbus-listener.c: In function ‘dbus_call_update_gl’:
../ui/dbus-listener.c:74:5: error: implicit declaration of function ‘glFlush’;
did you mean ‘fflush’? [-Werror=implicit-function-declaration]
glFlush();
^~~~~~~
fflush
I don't have libepoxy, only virgl installed. Did we miss something in
meson perhaps?
- [PULL v2 10/18] ui: set cursor position upon listener registration, (continued)
- [PULL v2 10/18] ui: set cursor position upon listener registration, marcandre . lureau, 2023/03/13
- [PULL v2 11/18] ui/sdl: get the GL context from the window, marcandre . lureau, 2023/03/13
- [PULL v2 09/18] ui: set cursor upon listener registration, marcandre . lureau, 2023/03/13
- [PULL v2 12/18] ui/shader: fix #version directive must occur on first line, marcandre . lureau, 2023/03/13
- [PULL v2 13/18] ui/egl: print EGL error, helping debugging, marcandre . lureau, 2023/03/13
- [PULL v2 15/18] ui/sdl: try to instantiate the matching opengl renderer, marcandre . lureau, 2023/03/13
- [PULL v2 14/18] ui/sdl: add QEMU_ENABLE_SDL_LOGGING setting/environment, marcandre . lureau, 2023/03/13
- [PULL v2 16/18] ui: introduce egl_init(), marcandre . lureau, 2023/03/13
- [PULL v2 17/18] ui/dbus: do not require opengl & gbm, marcandre . lureau, 2023/03/13
- [PULL v2 18/18] ui/dbus: restrict opengl to gbm-enabled config, marcandre . lureau, 2023/03/13
- Re: [PULL v2 18/18] ui/dbus: restrict opengl to gbm-enabled config,
Fabiano Rosas <=
- Re: [PULL v2 00/18] Display patches, Peter Maydell, 2023/03/14