Module: Mesa Branch: master Commit: 4f3f8bb59dd98e39c363fe47a55a7f97e7df9f4b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4f3f8bb59dd98e39c363fe47a55a7f97e7df9f4b
Author: Nicolas Boichat <[email protected]> Date: Wed Aug 3 21:54:22 2016 +0800 egl/dri2: dri2_initialize: Do not reference-count TestOnly display In the case where dri2_initialize is called with a TestOnly display, the display is not actually initialized, so dri2_egl_display always fails, and we cannot do any reference counting. Fixes piglit spec@egl_khr_create_context@verify gl flavor (reproducible with LIBGL_ALWAYS_SOFTWARE=1). Fixes: 9ee683f877 (egl/dri2: Add reference count for dri2_egl_display) Cc: "12.0" <[email protected]> Reported-by: Michel Dänzer <[email protected]> Signed-off-by: Nicolas Boichat <[email protected]> Reviewed-by: Emil Velikov <[email protected]> --- src/egl/drivers/dri2/egl_dri2.c | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index ac5ecbb..e854903 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -788,45 +788,34 @@ dri2_initialize(_EGLDriver *drv, _EGLDisplay *disp) if (disp->Options.UseFallback) return EGL_FALSE; + /* Nothing to initialize for a test only display */ + if (disp->Options.TestOnly) + return EGL_TRUE; + switch (disp->Platform) { #ifdef HAVE_SURFACELESS_PLATFORM case _EGL_PLATFORM_SURFACELESS: - if (disp->Options.TestOnly) - ret = EGL_TRUE; - else - ret = dri2_initialize_surfaceless(drv, disp); + ret = dri2_initialize_surfaceless(drv, disp); break; #endif #ifdef HAVE_X11_PLATFORM case _EGL_PLATFORM_X11: - if (disp->Options.TestOnly) - ret = EGL_TRUE; - else - ret = dri2_initialize_x11(drv, disp); + ret = dri2_initialize_x11(drv, disp); break; #endif #ifdef HAVE_DRM_PLATFORM case _EGL_PLATFORM_DRM: - if (disp->Options.TestOnly) - ret = EGL_TRUE; - else - ret = dri2_initialize_drm(drv, disp); + ret = dri2_initialize_drm(drv, disp); break; #endif #ifdef HAVE_WAYLAND_PLATFORM case _EGL_PLATFORM_WAYLAND: - if (disp->Options.TestOnly) - ret = EGL_TRUE; - else - ret = dri2_initialize_wayland(drv, disp); + ret = dri2_initialize_wayland(drv, disp); break; #endif #ifdef HAVE_ANDROID_PLATFORM case _EGL_PLATFORM_ANDROID: - if (disp->Options.TestOnly) - ret = EGL_TRUE; - else - ret = dri2_initialize_android(drv, disp); + ret = dri2_initialize_android(drv, disp); break; #endif default: _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
