egl: Don't advertise unsupported platform extensions
authorChad Versace <chadversary@chromium.org>
Wed, 12 Oct 2016 22:52:12 +0000 (15:52 -0700)
committerChad Versace <chadversary@chromium.org>
Fri, 14 Oct 2016 18:19:27 +0000 (11:19 -0700)
Mesa's set of supported platform extensions depends on the autoconf
option --with-egl-platforms=foo,bar,baz. If --with-egl-platforms lacks
foo, then eglGetPlatformDisplay(EGL_PLATFORM_FOO, ...) unconditonally
fails.

So, if --with-egl-platforms lacks foo, then remove
EGL_VENDOR_platform_foo from the EGL client extension string.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/egl/main/eglglobals.c

index ac1a263ab52ec0010e77ce42f8f7ead791941004..8fffa550f56cc8aa994830e1e4d54bb081ab12dc 100644 (file)
@@ -53,11 +53,17 @@ struct _egl_global _eglGlobal =
    /* ClientExtensionString */
    "EGL_EXT_client_extensions"
    " EGL_EXT_platform_base"
+#ifdef HAVE_WAYLAND_PLATFORM
    " EGL_EXT_platform_wayland"
+#endif
+#ifdef HAVE_X11_PLATFORM
    " EGL_EXT_platform_x11"
+#endif
+#ifdef HAVE_DRM_PLATFORM
+   " EGL_MESA_platform_gbm"
+#endif
    " EGL_KHR_client_get_all_proc_addresses"
-   " EGL_KHR_debug"
-   " EGL_MESA_platform_gbm",
+   " EGL_KHR_debug",
 
    NULL, /* debugCallback */
    _EGL_DEBUG_BIT_CRITICAL | _EGL_DEBUG_BIT_ERROR, /* debugTypesEnabled */