diff --git a/include/wlr/render/egl.h b/include/wlr/render/egl.h index ae155579..9a5bc76b 100644 --- a/include/wlr/render/egl.h +++ b/include/wlr/render/egl.h @@ -38,7 +38,6 @@ struct wlr_egl_context { struct wlr_egl { EGLDisplay display; - EGLConfig config; // may be EGL_NO_CONFIG EGLContext context; EGLDeviceEXT device; // may be EGL_NO_DEVICE_EXT struct gbm_device *gbm_device; @@ -80,11 +79,8 @@ struct wlr_egl { /** * Initializes an EGL context for the given platform and remote display. * Will attempt to load all possibly required api functions. - * - * If config_attribs is NULL, the EGL config is not created. */ -struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display, - const EGLint *config_attribs); +struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display); /** * Frees all related EGL resources, makes the context not-current and diff --git a/render/egl.c b/render/egl.c index 6cd1b903..4ff1c1b7 100644 --- a/render/egl.c +++ b/render/egl.c @@ -150,8 +150,7 @@ out: free(formats); } -struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display, - const EGLint *config_attribs) { +struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display) { struct wlr_egl *egl = calloc(1, sizeof(struct wlr_egl)); if (egl == NULL) { wlr_log_errno(WLR_ERROR, "Allocation failed"); @@ -286,25 +285,11 @@ struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display, check_egl_ext(device_exts_str, "EGL_EXT_device_drm"); } - if (config_attribs != NULL) { - EGLint matched = 0; - if (!eglChooseConfig(egl->display, config_attribs, &egl->config, 1, - &matched)) { - wlr_log(WLR_ERROR, "eglChooseConfig failed"); - goto error; - } - if (matched == 0) { - wlr_log(WLR_ERROR, "Failed to match an EGL config"); - goto error; - } - } else { - if (!check_egl_ext(display_exts_str, "EGL_KHR_no_config_context") && - !check_egl_ext(display_exts_str, "EGL_MESA_configless_context")) { - wlr_log(WLR_ERROR, "EGL_KHR_no_config_context or " - "EGL_MESA_configless_context not supported"); - goto error; - } - egl->config = EGL_NO_CONFIG_KHR; + if (!check_egl_ext(display_exts_str, "EGL_KHR_no_config_context") && + !check_egl_ext(display_exts_str, "EGL_MESA_configless_context")) { + wlr_log(WLR_ERROR, "EGL_KHR_no_config_context or " + "EGL_MESA_configless_context not supported"); + goto error; } wlr_log(WLR_INFO, "Using EGL %d.%d", (int)major, (int)minor); @@ -339,7 +324,7 @@ struct wlr_egl *wlr_egl_create(EGLenum platform, void *remote_display, attribs[atti++] = EGL_NONE; assert(atti <= sizeof(attribs)/sizeof(attribs[0])); - egl->context = eglCreateContext(egl->display, egl->config, + egl->context = eglCreateContext(egl->display, EGL_NO_CONFIG_KHR, EGL_NO_CONTEXT, attribs); if (egl->context == EGL_NO_CONTEXT) { wlr_log(WLR_ERROR, "Failed to create EGL context"); diff --git a/render/gles2/renderer.c b/render/gles2/renderer.c index 59d46a91..f385762d 100644 --- a/render/gles2/renderer.c +++ b/render/gles2/renderer.c @@ -466,9 +466,6 @@ static enum wl_shm_format gles2_preferred_read_format( glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_ALPHA_SIZE, &alpha_size); glBindRenderbuffer(GL_RENDERBUFFER, 0); - } else if (renderer->egl->config != EGL_NO_CONFIG_KHR) { - eglGetConfigAttrib(renderer->egl->display, renderer->egl->config, - EGL_ALPHA_SIZE, &alpha_size); } const struct wlr_gles2_pixel_format *fmt = diff --git a/render/wlr_renderer.c b/render/wlr_renderer.c index 4a565b1d..4bbbaf59 100644 --- a/render/wlr_renderer.c +++ b/render/wlr_renderer.c @@ -257,8 +257,7 @@ struct wlr_renderer *wlr_renderer_autocreate_with_drm_fd(int drm_fd) { return NULL; } - struct wlr_egl *egl = wlr_egl_create(EGL_PLATFORM_GBM_KHR, gbm_device, - NULL); + struct wlr_egl *egl = wlr_egl_create(EGL_PLATFORM_GBM_KHR, gbm_device); if (egl == NULL) { wlr_log(WLR_ERROR, "Could not initialize EGL"); gbm_device_destroy(gbm_device);