[Mesa-dev] [PATCH] mesa: Require current libxcb.
Ian Romanick
idr at freedesktop.org
Fri Jul 6 09:30:15 PDT 2012
On 07/05/2012 03:08 PM, Eric Anholt wrote:
> Without that, people with buggy apps that looked at just the server
> string for GLX_ARB_create_context would call this function that just
> threw an error when you tried to make a context. Google shows plenty
> of complaints about this.
Oh yeah. I never went back and did this. I thought the main problem
was various Unigen demos that only looked at the client string. Either way,
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
> ---
> configure.ac | 21 +--------------------
> src/glx/clientinfo.c | 7 +------
> src/glx/create_context.c | 14 --------------
> src/glx/glxextensions.c | 9 ---------
> src/glx/tests/Makefile.am | 3 ---
> 5 files changed, 2 insertions(+), 52 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 46265a2..a76515b 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1030,29 +1030,12 @@ xyesno)
> GL_PC_CFLAGS="$X11_INCLUDES"
>
> # XCB can only be used from pkg-config
> - PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx])
> + PKG_CHECK_MODULES([XCB],[x11-xcb xcb-glx>= 1.8.1])
> GL_PC_REQ_PRIV="$GL_PC_REQ_PRIV x11-xcb xcb-glx"
> X11_INCLUDES="$X11_INCLUDES $XCB_CFLAGS"
> GL_LIB_DEPS="$GL_LIB_DEPS $XCB_LIBS"
> fi
>
> - # Check to see if the xcb-glx library is new enough to support
> - # GLX_ARB_create_context. This bit of hackery is necessary until XCB 1.8
> - # is released.
> - save_CPPFLAGS="$CPPFLAGS"
> - save_LDFLAGS="$LDFLAGS"
> - CPPFLAGS="$CPPFLAGS $X11_INCLUDES"
> - LDFLAGS="$LDFLAGS $GL_LIB_DEPS"
> - AC_CHECK_LIB(xcb-glx, xcb_glx_create_context_attribs_arb_checked,
> - [HAVE_XCB_GLX_CREATE_CONTEXT=yes],
> - [HAVE_XCB_GLX_CREATE_CONTEXT=no])
> - CPPFLAGS="$save_CPPFLAGS"
> - LDFLAGS="$save_LDFLAGS"
> -
> - if test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes; then
> - X11_INCLUDES="$X11_INCLUDES -DHAVE_XCB_GLX_CREATE_CONTEXT"
> - fi
> -
> # need DRM libs, -lpthread, etc.
> GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
> GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS"
> @@ -1061,8 +1044,6 @@ esac
>
> # This is outside the case (above) so that it is invoked even for non-GLX
> # builds.
> -AM_CONDITIONAL(HAVE_XCB_GLX_CREATE_CONTEXT,
> - test x$HAVE_XCB_GLX_CREATE_CONTEXT = xyes)
> AM_CONDITIONAL(HAVE_XF86VIDMODE, test "x$HAVE_XF86VIDMODE" = xyes)
>
> GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS"
> diff --git a/src/glx/clientinfo.c b/src/glx/clientinfo.c
> index 97d43ce..429e9a3 100644
> --- a/src/glx/clientinfo.c
> +++ b/src/glx/clientinfo.c
> @@ -39,7 +39,6 @@ __glX_send_client_info(struct glx_display *glx_dpy)
> Bool any_screen_has_ARB_create_context = False;
> Bool any_screen_has_ARB_create_context_profile = False;
> unsigned i;
> -#ifdef HAVE_XCB_GLX_CREATE_CONTEXT
> static const uint32_t gl_versions[] = {
> 1, 4,
> };
> @@ -48,7 +47,6 @@ __glX_send_client_info(struct glx_display *glx_dpy)
> };
> static const char glx_extensions[] =
> "GLX_ARB_create_context GLX_ARB_create_context_profile";
> -#endif
>
> /* There are three possible flavors of the client info structure that the
> * client could send to the server. The version sent depends on the
> @@ -125,7 +123,6 @@ __glX_send_client_info(struct glx_display *glx_dpy)
> * THE ORDER IS IMPORTANT. We want to send the most recent version of the
> * protocol that the server can support.
> */
> -#ifdef HAVE_XCB_GLX_CREATE_CONTEXT
> if (glx_dpy->majorVersion == 1&& glx_dpy->minorVersion == 4
> && any_screen_has_ARB_create_context_profile) {
> xcb_glx_set_client_info_2arb(c,
> @@ -148,9 +145,7 @@ __glX_send_client_info(struct glx_display *glx_dpy)
> gl_versions,
> gl_extension_string,
> glx_extensions);
> - } else
> -#endif
> - {
> + } else {
> xcb_glx_client_info(c,
> GLX_MAJOR_VERSION, GLX_MINOR_VERSION,
> gl_extension_length,
> diff --git a/src/glx/create_context.c b/src/glx/create_context.c
> index a1a55b3..a755e83 100644
> --- a/src/glx/create_context.c
> +++ b/src/glx/create_context.c
> @@ -99,7 +99,6 @@ glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config,
> * the protocol error and handle it. Part of handling the error is freeing
> * the possibly non-NULL value returned by this function.
> */
> -#ifdef HAVE_XCB_GLX_CREATE_CONTEXT
> cookie =
> xcb_glx_create_context_attribs_arb_checked(c,
> gc->xid,
> @@ -111,19 +110,6 @@ glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config,
> (const uint32_t *)
> attrib_list);
> err = xcb_request_check(c, cookie);
> -#else
> - /* This is a hugely ugly hack to make things compile on systems that lack
> - * the proper XCB version.
> - */
> - memset(&cookie, 0, sizeof(cookie));
> -
> - err = calloc(1, sizeof(*err));
> - err->error_code = BadRequest;
> - err->sequence = dpy->request;
> - err->resource_id = gc->xid;
> - err->minor_code = gc->majorOpcode;
> - err->major_code = 34;
> -#endif
> if (err != NULL) {
> gc->vtable->destroy(gc);
> gc = NULL;
> diff --git a/src/glx/glxextensions.c b/src/glx/glxextensions.c
> index 86dc7d0..73b84dc 100644
> --- a/src/glx/glxextensions.c
> +++ b/src/glx/glxextensions.c
> @@ -71,13 +71,8 @@ struct extension_info
>
> /* *INDENT-OFF* */
> static const struct extension_info known_glx_extensions[] = {
> -#ifdef HAVE_XCB_GLX_CREATE_CONTEXT
> { GLX(ARB_create_context), VER(0,0), Y, N, N, N },
> { GLX(ARB_create_context_profile), VER(0,0), Y, N, N, N },
> -#else
> - { GLX(ARB_create_context), VER(0,0), N, N, N, N },
> - { GLX(ARB_create_context_profile), VER(0,0), N, N, N, N },
> -#endif
> { GLX(ARB_get_proc_address), VER(1,4), Y, N, Y, N },
> { GLX(ARB_multisample), VER(1,4), Y, Y, N, N },
> { GLX(ATI_pixel_format_float), VER(0,0), N, N, N, N },
> @@ -85,11 +80,7 @@ static const struct extension_info known_glx_extensions[] = {
> { GLX(EXT_visual_info), VER(0,0), Y, Y, N, N },
> { GLX(EXT_visual_rating), VER(0,0), Y, Y, N, N },
> { GLX(EXT_framebuffer_sRGB), VER(0,0), Y, Y, N, N },
> -#ifdef HAVE_XCB_GLX_CREATE_CONTEXT
> { GLX(EXT_create_context_es2_profile), VER(0,0), Y, N, N, Y },
> -#else
> - { GLX(EXT_create_context_es2_profile), VER(0,0), N, N, N, N },
> -#endif
> { GLX(MESA_copy_sub_buffer), VER(0,0), Y, N, N, N },
> { GLX(MESA_multithread_makecurrent),VER(0,0), Y, N, Y, N },
> { GLX(MESA_swap_control), VER(0,0), Y, N, N, Y },
> diff --git a/src/glx/tests/Makefile.am b/src/glx/tests/Makefile.am
> index b0d1db5..ad18f85 100644
> --- a/src/glx/tests/Makefile.am
> +++ b/src/glx/tests/Makefile.am
> @@ -5,7 +5,6 @@ AM_CPPFLAGS = \
> -I$(top_builddir)/include \
> $(X11_CFLAGS)
>
> -if HAVE_XCB_GLX_CREATE_CONTEXT
> TESTS = glx-test
> check_PROGRAMS = glx-test
>
> @@ -20,5 +19,3 @@ glx_test_LDADD = \
> $(top_builddir)/src/glx/libglx.la \
> $(top_builddir)/src/gtest/libgtest.la \
> -lpthread
> -
> -endif
More information about the mesa-dev
mailing list