From 7e8e1dfc8f08d357e2f41e31c08165a58d6b522b Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 12 Jan 2016 16:30:03 -0500 Subject: [PATCH] renderer: drop GDL support --- cogl/Makefile.am | 5 - cogl/cogl-display-private.h | 4 - cogl/cogl-display.c | 15 - cogl/cogl-display.h | 20 -- cogl/cogl-renderer.c | 6 - cogl/cogl-renderer.h | 2 - cogl/cogl.symbols | 4 - cogl/winsys/cogl-winsys-egl-gdl-private.h | 39 --- cogl/winsys/cogl-winsys-egl-gdl.c | 380 ---------------------- configure.ac | 31 -- examples/cogl-info.c | 2 - 11 files changed, 508 deletions(-) delete mode 100644 cogl/winsys/cogl-winsys-egl-gdl-private.h delete mode 100644 cogl/winsys/cogl-winsys-egl-gdl.c diff --git a/cogl/Makefile.am b/cogl/Makefile.am index 1c3971297..ebd062e5b 100644 --- a/cogl/Makefile.am +++ b/cogl/Makefile.am @@ -482,11 +482,6 @@ cogl_sources_c += \ winsys/cogl-winsys-egl-x11.c \ winsys/cogl-winsys-egl-x11-private.h endif -if SUPPORT_EGL_PLATFORM_GDL -cogl_sources_c += \ - winsys/cogl-winsys-egl-gdl.c \ - winsys/cogl-winsys-egl-gdl-private.h -endif if SUPPORT_EGL_PLATFORM_ANDROID cogl_sources_c += \ winsys/cogl-winsys-egl-android.c \ diff --git a/cogl/cogl-display-private.h b/cogl/cogl-display-private.h index db729840d..9788435bb 100644 --- a/cogl/cogl-display-private.h +++ b/cogl/cogl-display-private.h @@ -48,10 +48,6 @@ struct _CoglDisplay struct wl_display *wayland_compositor_display; #endif -#ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT - gdl_plane_id_t gdl_plane; -#endif - void *winsys; }; diff --git a/cogl/cogl-display.c b/cogl/cogl-display.c index ced922fa9..039e88199 100644 --- a/cogl/cogl-display.c +++ b/cogl/cogl-display.c @@ -104,10 +104,6 @@ cogl_display_new (CoglRenderer *renderer, display->setup = FALSE; -#ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT - display->gdl_plane = GDL_PLANE_ID_UPP_C; -#endif - display = _cogl_display_object_new (display); cogl_display_set_onscreen_template (display, onscreen_template); @@ -159,17 +155,6 @@ cogl_display_setup (CoglDisplay *display, return TRUE; } -#ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT -void -cogl_gdl_display_set_plane (CoglDisplay *display, - gdl_plane_id_t plane) -{ - _COGL_RETURN_IF_FAIL (display->setup == FALSE); - - display->gdl_plane = plane; -} -#endif - #ifdef COGL_HAS_WAYLAND_EGL_SERVER_SUPPORT void cogl_wayland_display_set_compositor_display (CoglDisplay *display, diff --git a/cogl/cogl-display.h b/cogl/cogl-display.h index ae3f3c960..47720a3fb 100644 --- a/cogl/cogl-display.h +++ b/cogl/cogl-display.h @@ -46,10 +46,6 @@ COGL_BEGIN_DECLS -#ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT -#include -#endif - /** * SECTION:cogl-display * @short_description: Common aspects of a display pipeline @@ -198,22 +194,6 @@ CoglBool cogl_display_setup (CoglDisplay *display, CoglError **error); -#ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT -/** - * cogl_gdl_display_set_plane: - * @display: a #CoglDisplay - * @plane: the GDL plane id - * - * Request that Cogl output to a specific GDL overlay @plane. - * - * Since: 1.10 - * Stability: unstable - */ -void -cogl_gdl_display_set_plane (CoglDisplay *display, - gdl_plane_id_t plane); -#endif - /** * cogl_is_display: * @object: A #CoglObject pointer diff --git a/cogl/cogl-renderer.c b/cogl/cogl-renderer.c index a518a188a..bae3a014c 100644 --- a/cogl/cogl-renderer.c +++ b/cogl/cogl-renderer.c @@ -60,9 +60,6 @@ #ifdef COGL_HAS_EGL_PLATFORM_KMS_SUPPORT #include "cogl-winsys-egl-kms-private.h" #endif -#ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT -#include "cogl-winsys-egl-gdl-private.h" -#endif #ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT #include "cogl-winsys-egl-android-private.h" #endif @@ -207,9 +204,6 @@ static CoglWinsysVtableGetter _cogl_winsys_vtable_getters[] = #ifdef COGL_HAS_EGL_PLATFORM_KMS_SUPPORT _cogl_winsys_egl_kms_get_vtable, #endif -#ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT - _cogl_winsys_egl_gdl_get_vtable, -#endif #ifdef COGL_HAS_EGL_PLATFORM_ANDROID_SUPPORT _cogl_winsys_egl_android_get_vtable, #endif diff --git a/cogl/cogl-renderer.h b/cogl/cogl-renderer.h index fdc65d541..3c3cc260f 100644 --- a/cogl/cogl-renderer.h +++ b/cogl/cogl-renderer.h @@ -163,7 +163,6 @@ cogl_renderer_new (void); * @COGL_WINSYS_ID_STUB: Use the no-op stub backend * @COGL_WINSYS_ID_GLX: Use the GLX window system binding API * @COGL_WINSYS_ID_EGL_XLIB: Use EGL with the X window system via XLib - * @COGL_WINSYS_ID_EGL_GDL: Use EGL with the GDL platform * @COGL_WINSYS_ID_EGL_WAYLAND: Use EGL with the Wayland window system * @COGL_WINSYS_ID_EGL_KMS: Use EGL with the KMS platform * @COGL_WINSYS_ID_EGL_ANDROID: Use EGL with the Android platform @@ -182,7 +181,6 @@ typedef enum COGL_WINSYS_ID_STUB, COGL_WINSYS_ID_GLX, COGL_WINSYS_ID_EGL_XLIB, - COGL_WINSYS_ID_EGL_GDL, COGL_WINSYS_ID_EGL_WAYLAND, COGL_WINSYS_ID_EGL_KMS, COGL_WINSYS_ID_EGL_ANDROID, diff --git a/cogl/cogl.symbols b/cogl/cogl.symbols index c3b9f5a78..5ae0118c8 100644 --- a/cogl/cogl.symbols +++ b/cogl/cogl.symbols @@ -322,10 +322,6 @@ cogl_frame_info_get_output cogl_frame_info_get_presentation_time cogl_frame_info_get_refresh_rate -#ifdef COGL_HAS_EGL_PLATFORM_GDL_SUPPORT -cogl_gdl_display_set_plane -#endif - cogl_frustum cogl_get_backface_culling_enabled diff --git a/cogl/winsys/cogl-winsys-egl-gdl-private.h b/cogl/winsys/cogl-winsys-egl-gdl-private.h deleted file mode 100644 index b7fc75c0f..000000000 --- a/cogl/winsys/cogl-winsys-egl-gdl-private.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Cogl - * - * A Low Level GPU Graphics and Utilities API - * - * Copyright (C) 2011 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * - */ - -#ifndef __COGL_WINSYS_EGL_GDL_PRIVATE_H -#define __COGL_WINSYS_EGL_GDL_PRIVATE_H - -#include "cogl-winsys-private.h" - -const CoglWinsysVtable * -_cogl_winsys_egl_gdl_get_vtable (void); - -#endif /* __COGL_WINSYS_EGL_GDL_PRIVATE_H */ diff --git a/cogl/winsys/cogl-winsys-egl-gdl.c b/cogl/winsys/cogl-winsys-egl-gdl.c deleted file mode 100644 index e5a076544..000000000 --- a/cogl/winsys/cogl-winsys-egl-gdl.c +++ /dev/null @@ -1,380 +0,0 @@ -/* - * Cogl - * - * A Low Level GPU Graphics and Utilities API - * - * Copyright (C) 2011 Intel Corporation. - * - * Permission is hereby granted, free of charge, to any person - * obtaining a copy of this software and associated documentation - * files (the "Software"), to deal in the Software without - * restriction, including without limitation the rights to use, copy, - * modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be - * included in all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS - * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN - * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - * - * - * Authors: - * Robert Bragg - * Neil Roberts - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "cogl-winsys-egl-gdl-private.h" -#include "cogl-winsys-egl-private.h" -#include "cogl-renderer-private.h" -#include "cogl-framebuffer-private.h" -#include "cogl-onscreen-private.h" -#include "cogl-onscreen-template-private.h" -#include "cogl-swap-chain-private.h" - -static const CoglWinsysEGLVtable _cogl_winsys_egl_vtable; - -typedef struct _CoglRendererGDL -{ - CoglBool gdl_initialized; -} CoglRendererGDL; - -typedef struct _CoglDisplayGDL -{ - int egl_surface_width; - int egl_surface_height; - CoglBool have_onscreen; -} CoglDisplayGDL; - -static void -_cogl_winsys_renderer_disconnect (CoglRenderer *renderer) -{ - CoglRendererEGL *egl_renderer = renderer->winsys; - CoglRendererGDL *gdl_renderer = egl_renderer->platform; - - if (gdl_renderer->gdl_initialized) - gdl_close (); - - eglTerminate (egl_renderer->edpy); - - g_slice_free (CoglRendererEGL, egl_renderer); -} - -static CoglBool -_cogl_winsys_renderer_connect (CoglRenderer *renderer, - CoglError **error) -{ - CoglRendererEGL *egl_renderer; - CoglRendererGDL *gdl_renderer; - gdl_ret_t rc = GDL_SUCCESS; - gdl_display_info_t gdl_display_info; - - renderer->winsys = g_slice_new0 (CoglRendererEGL); - egl_renderer = renderer->winsys; - - gdl_renderer = g_slice_new0 (CoglRendererGDL); - egl_renderer->platform = gdl_renderer; - - egl_renderer->platform_vtable = &_cogl_winsys_egl_vtable; - - egl_renderer->edpy = eglGetDisplay (EGL_DEFAULT_DISPLAY); - - if (!_cogl_winsys_egl_renderer_connect_common (renderer, error)) - goto error; - - /* Check we can talk to the GDL library */ - rc = gdl_init (NULL); - if (rc != GDL_SUCCESS) - { - _cogl_set_error (error, COGL_WINSYS_ERROR, - COGL_WINSYS_ERROR_INIT, - "GDL initialize failed. %s", - gdl_get_error_string (rc)); - goto error; - } - - rc = gdl_get_display_info (GDL_DISPLAY_ID_0, &gdl_display_info); - if (rc != GDL_SUCCESS) - { - _cogl_set_error (error, COGL_WINSYS_ERROR, - COGL_WINSYS_ERROR_INIT, - "GDL failed to get display information: %s", - gdl_get_error_string (rc)); - gdl_close (); - goto error; - } - - gdl_close (); - - return TRUE; - -error: - _cogl_winsys_renderer_disconnect (renderer); - return FALSE; -} - -static CoglBool -_cogl_winsys_egl_context_created (CoglDisplay *display, - CoglError **error) -{ - CoglRenderer *renderer = display->renderer; - CoglRendererEGL *egl_renderer = renderer->winsys; - CoglDisplayEGL *egl_display = display->winsys; - CoglDisplayGDL *gdl_display = egl_display->platform; - const char *error_message; - - egl_display->egl_surface = - eglCreateWindowSurface (egl_renderer->edpy, - egl_display->egl_config, - (EGLNativeWindowType) display->gdl_plane, - NULL); - - if (egl_display->egl_surface == EGL_NO_SURFACE) - { - error_message = "Unable to create EGL window surface"; - goto fail; - } - - if (!_cogl_winsys_egl_make_current (display, - egl_display->egl_surface, - egl_display->egl_surface, - egl_display->egl_context)) - { - error_message = "Unable to eglMakeCurrent with egl surface"; - goto fail; - } - - eglQuerySurface (egl_renderer->edpy, - egl_display->egl_surface, - EGL_WIDTH, - &gdl_display->egl_surface_width); - - eglQuerySurface (egl_renderer->edpy, - egl_display->egl_surface, - EGL_HEIGHT, - &gdl_display->egl_surface_height); - - return TRUE; - - fail: - _cogl_set_error (error, COGL_WINSYS_ERROR, - COGL_WINSYS_ERROR_CREATE_CONTEXT, - "%s", error_message); - return FALSE; -} - -static CoglBool -gdl_plane_init (CoglDisplay *display, CoglError **error) -{ - CoglBool ret = TRUE; - gdl_color_space_t colorSpace = GDL_COLOR_SPACE_RGB; - gdl_pixel_format_t pixfmt = GDL_PF_ARGB_32; - gdl_rectangle_t dstRect; - gdl_display_info_t display_info; - gdl_ret_t rc = GDL_SUCCESS; - - if (!display->gdl_plane) - { - _cogl_set_error (error, COGL_WINSYS_ERROR, COGL_WINSYS_ERROR_CREATE_CONTEXT, - "No GDL plane specified with " - "cogl_gdl_display_set_plane"); - return FALSE; - } - - rc = gdl_init (NULL); - if (rc != GDL_SUCCESS) - { - _cogl_set_error (error, COGL_WINSYS_ERROR, COGL_WINSYS_ERROR_CREATE_CONTEXT, - "GDL initialize failed. %s", gdl_get_error_string (rc)); - return FALSE; - } - - rc = gdl_get_display_info (GDL_DISPLAY_ID_0, &display_info); - if (rc != GDL_SUCCESS) - { - _cogl_set_error (error, COGL_WINSYS_ERROR, COGL_WINSYS_ERROR_CREATE_CONTEXT, - "GDL failed to get display infomation: %s", - gdl_get_error_string (rc)); - gdl_close (); - return FALSE; - } - - dstRect.origin.x = 0; - dstRect.origin.y = 0; - dstRect.width = display_info.tvmode.width; - dstRect.height = display_info.tvmode.height; - - /* Configure the plane attribute. */ - rc = gdl_plane_reset (display->gdl_plane); - if (rc == GDL_SUCCESS) - rc = gdl_plane_config_begin (display->gdl_plane); - - if (rc == GDL_SUCCESS) - rc = gdl_plane_set_attr (GDL_PLANE_SRC_COLOR_SPACE, &colorSpace); - - if (rc == GDL_SUCCESS) - rc = gdl_plane_set_attr (GDL_PLANE_PIXEL_FORMAT, &pixfmt); - - if (rc == GDL_SUCCESS) - rc = gdl_plane_set_attr (GDL_PLANE_DST_RECT, &dstRect); - - /* Default to triple buffering if the swap_chain doesn't have an explicit - * length */ - if (rc == GDL_SUCCESS) - { - if (display->onscreen_template->config.swap_chain && - display->onscreen_template->config.swap_chain->length != -1) - rc = gdl_plane_set_uint (GDL_PLANE_NUM_GFX_SURFACES, - display->onscreen_template-> - config.swap_chain->length); - else - rc = gdl_plane_set_uint (GDL_PLANE_NUM_GFX_SURFACES, 3); - } - - if (rc == GDL_SUCCESS) - rc = gdl_plane_config_end (GDL_FALSE); - else - gdl_plane_config_end (GDL_TRUE); - - if (rc != GDL_SUCCESS) - { - _cogl_set_error (error, COGL_WINSYS_ERROR, COGL_WINSYS_ERROR_CREATE_CONTEXT, - "GDL configuration failed: %s.", gdl_get_error_string (rc)); - ret = FALSE; - } - - gdl_close (); - - return ret; -} - -static CoglBool -_cogl_winsys_egl_display_setup (CoglDisplay *display, - CoglError **error) -{ - CoglDisplayEGL *egl_display = display->winsys; - CoglDisplayGDL *gdl_display; - - gdl_display = g_slice_new0 (CoglDisplayGDL); - egl_display->platform = gdl_display; - - if (!gdl_plane_init (display, error)) - return FALSE; - - return TRUE; -} - -static void -_cogl_winsys_egl_display_destroy (CoglDisplay *display) -{ - CoglDisplayEGL *egl_display = display->winsys; - - g_slice_free (CoglDisplayGDL, egl_display->platform); -} - -static void -_cogl_winsys_egl_cleanup_context (CoglDisplay *display) -{ - CoglRenderer *renderer = display->renderer; - CoglRendererEGL *egl_renderer = renderer->winsys; - CoglDisplayEGL *egl_display = display->winsys; - - if (egl_display->egl_surface != EGL_NO_SURFACE) - { - eglDestroySurface (egl_renderer->edpy, egl_display->egl_surface); - egl_display->egl_surface = EGL_NO_SURFACE; - } -} - -static CoglBool -_cogl_winsys_egl_onscreen_init (CoglOnscreen *onscreen, - EGLConfig egl_config, - CoglError **error) -{ - CoglFramebuffer *framebuffer = COGL_FRAMEBUFFER (onscreen); - CoglContext *context = framebuffer->context; - CoglDisplay *display = context->display; - CoglDisplayEGL *egl_display = display->winsys; - CoglDisplayGDL *gdl_display = egl_display->platform; - CoglOnscreenEGL *egl_onscreen = onscreen->winsys; - - if (gdl_display->have_onscreen) - { - _cogl_set_error (error, COGL_WINSYS_ERROR, - COGL_WINSYS_ERROR_CREATE_ONSCREEN, - "EGL platform only supports a single onscreen window"); - return FALSE; - } - - egl_onscreen->egl_surface = egl_display->egl_surface; - - _cogl_framebuffer_winsys_update_size (framebuffer, - gdl_display->egl_surface_width, - gdl_display->egl_surface_height); - gdl_display->have_onscreen = TRUE; - - return TRUE; -} - -static int -_cogl_winsys_egl_add_config_attributes (CoglDisplay *display, - CoglFramebufferConfig *config, - EGLint *attributes) -{ - int i = 0; - - /* XXX: Why does the GDL platform choose these by default? */ - attributes[i++] = EGL_BIND_TO_TEXTURE_RGBA; - attributes[i++] = EGL_TRUE; - attributes[i++] = EGL_BIND_TO_TEXTURE_RGB; - attributes[i++] = EGL_TRUE; - - return i; -} - -static const CoglWinsysEGLVtable -_cogl_winsys_egl_vtable = - { - .display_setup = _cogl_winsys_egl_display_setup, - .display_destroy = _cogl_winsys_egl_display_destroy, - .context_created = _cogl_winsys_egl_context_created, - .cleanup_context = _cogl_winsys_egl_cleanup_context, - .onscreen_init = _cogl_winsys_egl_onscreen_init, - .add_config_attributes = _cogl_winsys_egl_add_config_attributes - }; - -const CoglWinsysVtable * -_cogl_winsys_egl_gdl_get_vtable (void) -{ - static CoglBool vtable_inited = FALSE; - static CoglWinsysVtable vtable; - - if (!vtable_inited) - { - /* The EGL_GDL winsys is a subclass of the EGL winsys so we - start by copying its vtable */ - - vtable = *_cogl_winsys_egl_get_vtable (); - - vtable.id = COGL_WINSYS_ID_EGL_GDL; - vtable.name = "EGL_GDL"; - - vtable.renderer_connect = _cogl_winsys_renderer_connect; - vtable.renderer_disconnect = _cogl_winsys_renderer_disconnect; - - vtable_inited = TRUE; - } - - return &vtable; -} diff --git a/configure.ac b/configure.ac index 8d226d7b2..3e88e3841 100644 --- a/configure.ac +++ b/configure.ac @@ -1008,37 +1008,6 @@ AS_IF([test "x$SUPPORT_SDL2" = "xyes" -a "x$SUPPORT_SDL" = "xyes"], EGL_PLATFORM_COUNT=0 -AC_ARG_ENABLE( - [gdl-egl-platform], - [AC_HELP_STRING([--enable-gdl-egl-platform=@<:@no/yes@:>@], [Enable support for the GDL egl platform @<:@default=no@:>@])], - [], - enable_gdl_egl_platform=no -) -AS_IF([test "x$enable_gdl_egl_platform" = "xyes"], - [ - EGL_PLATFORM_COUNT=$((EGL_PLATFORM_COUNT+1)) - NEED_EGL=yes - EGL_PLATFORMS="$EGL_PLATFORMS gdl" - - AC_CHECK_HEADERS( - [libgdl.h], - [], - [ - AC_CHECK_HEADERS( - [CE4100/libgdl.h], - [ - COGL_EXTRA_CFLAGS="$COGL_EXTRA_CFLAGS -I/usr/include/CE4100" - ], - [AC_MSG_ERROR([libgdl.h not found])]) - ]) - - COGL_EXTRA_LDFLAGS="$COGL_EXTRA_LDFLAGS -lgdl" - - COGL_DEFINES_SYMBOLS="$COGL_DEFINES_SYMBOLS COGL_HAS_EGL_PLATFORM_GDL_SUPPORT" - ]) -AM_CONDITIONAL(SUPPORT_EGL_PLATFORM_GDL, - [test "x$enable_gdl_egl_platform" = "xyes"]) - AC_ARG_ENABLE( [wayland-egl-platform], [AC_HELP_STRING([--enable-wayland-egl-platform=@<:@no/yes@:>@], [Enable support for the Wayland egl platform @<:@default=no@:>@])], diff --git a/examples/cogl-info.c b/examples/cogl-info.c index 4b837665c..a039ad9df 100644 --- a/examples/cogl-info.c +++ b/examples/cogl-info.c @@ -137,8 +137,6 @@ get_winsys_name_for_id (CoglWinsysID winsys_id) return "GLX"; case COGL_WINSYS_ID_EGL_XLIB: return "EGL + Xlib platform"; - case COGL_WINSYS_ID_EGL_GDL: - return "EGL + GDL platform"; case COGL_WINSYS_ID_EGL_WAYLAND: return "EGL + Wayland platform"; case COGL_WINSYS_ID_EGL_KMS: