From 3cb21152121d49b821466000c3db4c198b8023e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Sat, 15 Apr 2023 14:35:04 +0400 Subject: [PATCH 1/4] gdk: drop unused vertex_array_object MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau --- gdk/gdkglcontextprivate.h | 1 - 1 file changed, 1 deletion(-) diff --git a/gdk/gdkglcontextprivate.h b/gdk/gdkglcontextprivate.h index 847b1c54a0..d80f52bca7 100644 --- a/gdk/gdkglcontextprivate.h +++ b/gdk/gdkglcontextprivate.h @@ -100,7 +100,6 @@ typedef struct { } GdkGLContextProgram; typedef struct { - guint vertex_array_object; guint tmp_framebuffer; guint tmp_vertex_buffer; From 9532657fa247976031268eec19b0adc416e89af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Thu, 13 Apr 2023 19:22:21 +0400 Subject: [PATCH 2/4] gdk: use GLES when on win32/ANGLE MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When using GDK_DEBUG=gl-egl, we end up using GL, but that is not well supported: Creating EGL context version 3.0 (debug:no, forward:no, legacy:yes, es:no) Created EGL context[0000000000000004] OpenGL version: 0.0 (legacy) * GLSL version: (NULL) * Max texture size: -1059701680 * Extensions checked: - GL_KHR_debug: no - GL_EXT_unpack_subimage: yes - OES_vertex_half_float: no ** (gtk4-demo.exe:14324): WARNING **: 19:16:41.468: Compile failure in vertex shader: ERROR: 0:7: 'gl_Position' : undeclared identifier ---8<--- Use GLES when EGL implementation is ANGLE. Signed-off-by: Marc-André Lureau --- gdk/win32/gdkdisplay-win32.c | 1 + 1 file changed, 1 insertion(+) diff --git a/gdk/win32/gdkdisplay-win32.c b/gdk/win32/gdkdisplay-win32.c index 5c53f247c2..d07a1c09cb 100644 --- a/gdk/win32/gdkdisplay-win32.c +++ b/gdk/win32/gdkdisplay-win32.c @@ -1207,6 +1207,7 @@ gdk_win32_display_init_gl (GdkDisplay *display, { return g_object_new (GDK_TYPE_WIN32_GL_CONTEXT_EGL, "display", display, + "allowed-apis", GDK_GL_API_GLES, NULL); } else From d69cdf6c056f449ebdd0808b2fff071ef182acff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Sat, 15 Apr 2023 14:33:20 +0400 Subject: [PATCH 3/4] gdk: drop libangle GLES minimum version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GLES 2.0 version is fine now with current gtk according to B. Otte. Let's use the same minimum requirement for all implementations. Signed-off-by: Marc-André Lureau --- gdk/gdkdisplay.c | 2 -- gdk/gdkdisplayprivate.h | 1 - gdk/gdkglcontext.c | 14 ++------------ gdk/gdkglcontextprivate.h | 6 +----- gdk/x11/gdkglcontext-glx.c | 2 +- 5 files changed, 4 insertions(+), 21 deletions(-) diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 32ad4aee7a..d2ae997c31 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -1723,8 +1723,6 @@ gdk_display_init_egl (GdkDisplay *self, epoxy_has_egl_extension (priv->egl_display, "EGL_KHR_no_config_context"); self->have_egl_pixel_format_float = epoxy_has_egl_extension (priv->egl_display, "EGL_EXT_pixel_format_float"); - self->have_egl_win32_libangle = - epoxy_has_egl_extension (priv->egl_display, "EGL_ANGLE_d3d_share_handle_client_buffer"); 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 5fe690d9d0..af6fb0ebad 100644 --- a/gdk/gdkdisplayprivate.h +++ b/gdk/gdkdisplayprivate.h @@ -108,7 +108,6 @@ struct _GdkDisplay guint have_egl_buffer_age : 1; guint have_egl_no_config_context : 1; guint have_egl_pixel_format_float : 1; - guint have_egl_win32_libangle : 1; }; struct _GdkDisplayClass diff --git a/gdk/gdkglcontext.c b/gdk/gdkglcontext.c index 8614ec3e83..8d38a0c50f 100644 --- a/gdk/gdkglcontext.c +++ b/gdk/gdkglcontext.c @@ -297,7 +297,6 @@ gdk_gl_context_create_egl_context (GdkGLContext *context, /* We will use the default version matching the context status * unless the user requested a version which makes sense */ gdk_gl_context_get_matching_version (api, legacy, - display->have_egl_win32_libangle, &min_major, &min_minor); gdk_gl_context_get_clipped_version (context, min_major, min_minor, @@ -989,7 +988,6 @@ gdk_gl_context_get_forward_compatible (GdkGLContext *context) void gdk_gl_context_get_matching_version (GdkGLAPI api, gboolean legacy, - gboolean win32_libangle, int *major, int *minor) { @@ -1010,16 +1008,8 @@ gdk_gl_context_get_matching_version (GdkGLAPI api, } else { - if (win32_libangle) - { - maj = GDK_GL_MIN_GLES_WIN32_ANGLE_VERSION_MAJOR; - min = GDK_GL_MIN_GLES_WIN32_ANGLE_VERSION_MINOR; - } - else - { - maj = GDK_GL_MIN_GLES_VERSION_MAJOR; - min = GDK_GL_MIN_GLES_VERSION_MINOR; - } + maj = GDK_GL_MIN_GLES_VERSION_MAJOR; + min = GDK_GL_MIN_GLES_VERSION_MINOR; } if (major != NULL) diff --git a/gdk/gdkglcontextprivate.h b/gdk/gdkglcontextprivate.h index d80f52bca7..ac20742ea9 100644 --- a/gdk/gdkglcontextprivate.h +++ b/gdk/gdkglcontextprivate.h @@ -36,8 +36,7 @@ G_BEGIN_DECLS * Backends should make sure to never create a context of a previous version. * * The macros refer to OpenGL; OpenGL with OPENGL_COMPATIBILITY_PROFILE_BIT as - * OPENGL_PROFILE_MASK; OpenGL ES; and OpenGL ES win32 Angle implementation, - * respectively + * OPENGL_PROFILE_MASK; and OpenGL ES respectively */ #define GDK_GL_MIN_GL_VERSION_MAJOR (3) #define GDK_GL_MIN_GL_VERSION_MINOR (2) @@ -45,8 +44,6 @@ G_BEGIN_DECLS #define GDK_GL_MIN_GL_LEGACY_VERSION_MINOR (0) #define GDK_GL_MIN_GLES_VERSION_MAJOR (2) #define GDK_GL_MIN_GLES_VERSION_MINOR (0) -#define GDK_GL_MIN_GLES_WIN32_ANGLE_VERSION_MAJOR (3) -#define GDK_GL_MIN_GLES_WIN32_ANGLE_VERSION_MINOR (0) typedef enum { GDK_GL_NONE = 0, @@ -139,7 +136,6 @@ void gdk_gl_context_get_clipped_version (GdkGLContext int *minor); void gdk_gl_context_get_matching_version (GdkGLAPI api, gboolean legacy, - gboolean win32_libangle, int *major, int *minor); diff --git a/gdk/x11/gdkglcontext-glx.c b/gdk/x11/gdkglcontext-glx.c index db3040442c..bdcd3042cc 100644 --- a/gdk/x11/gdkglcontext-glx.c +++ b/gdk/x11/gdkglcontext-glx.c @@ -488,7 +488,7 @@ gdk_x11_context_create_glx_context (GdkGLContext *context, /* We will use the default version matching the context status * unless the user requested a version which makes sense */ - gdk_gl_context_get_matching_version (api, legacy, 0, + gdk_gl_context_get_matching_version (api, legacy, &min_major, &min_minor); gdk_gl_context_get_clipped_version (context, min_major, min_minor, &major, &minor); From 250414d6b3ab726b200946cebf5e896fd2e96cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= Date: Sun, 16 Apr 2023 21:23:49 +0400 Subject: [PATCH 4/4] gdk/win32: drop some unused variables MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Marc-André Lureau --- gdk/win32/gdkglcontext-win32-egl.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/gdk/win32/gdkglcontext-win32-egl.c b/gdk/win32/gdkglcontext-win32-egl.c index 0e8854de49..82019d6e6c 100644 --- a/gdk/win32/gdkglcontext-win32-egl.c +++ b/gdk/win32/gdkglcontext-win32-egl.c @@ -83,20 +83,13 @@ gdk_win32_gl_context_egl_end_frame (GdkDrawContext *draw_context, cairo_region_t *painted) { GdkGLContext *context = GDK_GL_CONTEXT (draw_context); - GdkWin32GLContextEGL *context_egl = GDK_WIN32_GL_CONTEXT_EGL (context); GdkSurface *surface = gdk_gl_context_get_surface (context); GdkDisplay *display = gdk_gl_context_get_display (context); - cairo_rectangle_int_t whole_window; EGLSurface egl_surface; GDK_DRAW_CONTEXT_CLASS (gdk_win32_gl_context_egl_parent_class)->end_frame (draw_context, painted); gdk_gl_context_make_current (context); - whole_window = - (GdkRectangle) { 0, 0, - gdk_surface_get_width (surface), - gdk_surface_get_height (surface) - }; egl_surface = gdk_surface_get_egl_surface (surface);