From df8efd5b74d45e2bfb977a92dcd3db86abd6b143 Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Sat, 5 Aug 2017 00:25:48 +0100 Subject: [PATCH] egl: handle BAD_NATIVE_PIXMAP further up the stack The basic (null) check is identical across all backends. Just move it to the top. v2: - Split the WINDOW vs PIXMAP into separate patches - Move check after the dpy and config - dEQP expects so Signed-off-by: Emil Velikov Reviewed-by: Eric Engestrom --- src/egl/drivers/dri2/platform_x11.c | 5 ----- src/egl/main/eglapi.c | 3 +++ 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c index ec38e8123d8..87efa016be9 100644 --- a/src/egl/drivers/dri2/platform_x11.c +++ b/src/egl/drivers/dri2/platform_x11.c @@ -246,11 +246,6 @@ dri2_x11_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type, dri2_surf->drawable, dri2_dpy->screen->root, dri2_surf->base.Width, dri2_surf->base.Height); } else { - if (!drawable) { - assert(type == EGL_PIXMAP_BIT) - _eglError(EGL_BAD_NATIVE_PIXMAP, "dri2_create_surface"); - goto cleanup_surf; - } dri2_surf->drawable = drawable; } diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 7f042181040..b3bcb1bac7d 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -1021,6 +1021,9 @@ _eglCreatePixmapSurfaceCommon(_EGLDisplay *disp, EGLConfig config, if ((conf->SurfaceType & EGL_PIXMAP_BIT) == 0) RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SURFACE); + if (native_pixmap == NULL) + RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_PIXMAP, EGL_NO_SURFACE); + surf = drv->API.CreatePixmapSurface(drv, disp, conf, native_pixmap, attrib_list); ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;