From 954938e90a62146af04ca869f43d5824e32012f7 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 17 Jun 2024 07:56:06 -0400 Subject: [PATCH] egl: Check for the EXT_KHR_gl_colorspace extension --- gdk/gdkdisplay.c | 2 ++ gdk/gdkdisplayprivate.h | 1 + gdk/gdksurface.c | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 75b0535a6a..8a930a6dbc 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -1874,6 +1874,8 @@ gdk_display_init_egl (GdkDisplay *self, epoxy_has_egl_extension (priv->egl_display, "EGL_EXT_image_dma_buf_import_modifiers"); self->have_egl_dma_buf_export = epoxy_has_egl_extension (priv->egl_display, "EGL_MESA_image_dma_buf_export"); + self->have_egl_gl_colorspace = + epoxy_has_egl_extension (priv->egl_display, "EGL_KHR_gl_colorspace"); if (self->have_egl_no_config_context) priv->egl_config_high_depth = gdk_display_create_egl_config (self, diff --git a/gdk/gdkdisplayprivate.h b/gdk/gdkdisplayprivate.h index 13bbb2ffbb..d3ca1d66cb 100644 --- a/gdk/gdkdisplayprivate.h +++ b/gdk/gdkdisplayprivate.h @@ -130,6 +130,7 @@ struct _GdkDisplay guint have_egl_pixel_format_float : 1; guint have_egl_dma_buf_import : 1; guint have_egl_dma_buf_export : 1; + guint have_egl_gl_colorspace : 1; GdkDmabufFormats *dmabuf_formats; GdkDmabufDownloader *dmabuf_downloaders[4]; diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c index e63e8665f3..8c92b873b2 100644 --- a/gdk/gdksurface.c +++ b/gdk/gdksurface.c @@ -1217,7 +1217,8 @@ gdk_surface_ensure_egl_surface (GdkSurface *self, } if (want_srgb_conversion != priv->egl_surface_converts_srgb && - priv->egl_surface != NULL) + priv->egl_surface != NULL && + display->have_egl_gl_colorspace) { gdk_gl_context_clear_current_if_surface (self); eglDestroySurface (gdk_display_get_egl_display (display), priv->egl_surface);