[waffle] [PATCH 7/7] egl: Use eglGetPlatformDisplay when possible
Emil Velikov
emil.l.velikov at gmail.com
Tue Oct 18 23:06:06 UTC 2016
On 18 October 2016 at 17:58, Chad Versace <chadversary at chromium.org> wrote:
> Tested against Mesa master at 8c78fdb with `ninja check-func` on Linux.
> ---
> src/waffle/egl/wegl_display.c | 22 ++++++++++++++++++----
> src/waffle/egl/wegl_platform.c | 35 +++++++++++++++++++++++++++++++++--
> src/waffle/egl/wegl_platform.h | 8 ++++++++
> 3 files changed, 59 insertions(+), 6 deletions(-)
>
> diff --git a/src/waffle/egl/wegl_display.c b/src/waffle/egl/wegl_display.c
> index 7a7986c..c924f2a 100644
> --- a/src/waffle/egl/wegl_display.c
> +++ b/src/waffle/egl/wegl_display.c
> @@ -104,10 +104,24 @@ wegl_display_init(struct wegl_display *dpy,
> if (!ok)
> goto fail;
>
> - dpy->egl = plat->eglGetDisplay((EGLNativeDisplayType) native_display);
> - if (!dpy->egl) {
> - wegl_emit_error(plat, "eglGetDisplay");
> - goto fail;
> + if (wegl_platform_can_use_eglGetPlatformDisplay(plat)) {
> + void *fixed_native_dpy = native_display;
> + if (plat->egl_platform == EGL_PLATFORM_X11_KHR)
> + fixed_native_dpy = &native_display;
> +
Silly question: wasn't the fixup applicable only for the window/pixmap surface ?
> + dpy->egl = plat->eglGetPlatformDisplay(plat->egl_platform,
> + fixed_native_dpy,
> + NULL);
> + if (!dpy->egl) {
> + wegl_emit_error(plat, "eglGetPlatformDisplay");
> + goto fail;
> + }
Wondering if falling back to eglGetDisplay() is a smart idea in this case?
How about EGL_EXT_platform_base/eglGetPlatformDisplayEXT (admittedly
there's no support for it atm, but it's trivial to do so) ?
Emil
More information about the waffle
mailing list