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"
# 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"
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,
};
};
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
* 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,
gl_versions,
gl_extension_string,
glx_extensions);
- } else
-#endif
- {
+ } else {
xcb_glx_client_info(c,
GLX_MAJOR_VERSION, GLX_MINOR_VERSION,
gl_extension_length,
* 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,
(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;
/* *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 },
{ GLX(ARB_create_context_robustness), 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 },
- { GLX(ARB_create_context_robustness), 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 },
{ 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 },