mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
pipe-loader: wrap pipe_loader_sw_probe_xlib within HAVE_PIPE_LOADER_XLIB
The above function implies using the the xlib winsys, which has additional library dependencies that should not be forced. Make the software xlib pipe loader optional thus avoid all the dependency hell. A user that wishes to use the particular pipe-loader would need to set the following within configure.ac. enable_gallium_xlib_loader=yes v2: - Wrap sw/xlib/xlib_sw_winsys.h to handle compilation on systems lacking X11 headers. Spotted by Christian Prochaska. Tested-by: Tom Stellard <thomas.stellard@amd.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=75356 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
parent
0e7c30233f
commit
3445e8bb92
8 changed files with 41 additions and 7 deletions
|
|
@ -1887,6 +1887,12 @@ AM_CONDITIONAL(NEED_GALLIUM_LLVMPIPE_DRIVER, test "x$HAVE_GALLIUM_I915" = xyes -
|
|||
if test "x$enable_gallium_loader" = xyes; then
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/null"
|
||||
|
||||
if test "x$enable_gallium_xlib_loader" = xyes; then
|
||||
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/xlib"
|
||||
NEED_WINSYS_XLIB="yes"
|
||||
GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_XLIB"
|
||||
fi
|
||||
|
||||
if test "x$enable_gallium_drm_loader" = xyes; then
|
||||
GALLIUM_PIPE_LOADER_DEFINES="$GALLIUM_PIPE_LOADER_DEFINES -DHAVE_PIPE_LOADER_DRM"
|
||||
PKG_CHECK_MODULES([GALLIUM_PIPE_LOADER_XCB], [xcb xcb-dri2],
|
||||
|
|
@ -1905,6 +1911,7 @@ if test "x$enable_gallium_loader" = xyes; then
|
|||
AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_DEFINES])
|
||||
AC_SUBST([GALLIUM_PIPE_LOADER_CLIENT_LIBS])
|
||||
fi
|
||||
AM_CONDITIONAL(NEED_PIPE_LOADER_XLIB, test "x$enable_gallium_xlib_loader" = xyes)
|
||||
|
||||
AM_CONDITIONAL(HAVE_I915_DRI, test x$HAVE_I915_DRI = xyes)
|
||||
AM_CONDITIONAL(HAVE_I965_DRI, test x$HAVE_I965_DRI = xyes)
|
||||
|
|
|
|||
|
|
@ -8,10 +8,6 @@ AM_CPPFLAGS = $(DEFINES) \
|
|||
-I$(top_srcdir)/src/gallium/auxiliary \
|
||||
-I$(top_srcdir)/src/gallium/winsys
|
||||
|
||||
if NEED_WINSYS_XLIB
|
||||
AM_CPPFLAGS += -DHAVE_WINSYS_XLIB
|
||||
endif
|
||||
|
||||
noinst_LTLIBRARIES =
|
||||
|
||||
if HAVE_LOADER_GALLIUM
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@
|
|||
|
||||
#include "pipe/p_compiler.h"
|
||||
|
||||
#ifdef HAVE_WINSYS_XLIB
|
||||
#ifdef HAVE_PIPE_LOADER_XLIB
|
||||
#include <X11/Xlib.h>
|
||||
#endif
|
||||
|
||||
|
|
@ -105,7 +105,7 @@ pipe_loader_create_screen(struct pipe_loader_device *dev,
|
|||
void
|
||||
pipe_loader_release(struct pipe_loader_device **devs, int ndev);
|
||||
|
||||
#ifdef HAVE_WINSYS_XLIB
|
||||
#ifdef HAVE_PIPE_LOADER_XLIB
|
||||
|
||||
/**
|
||||
* Initialize Xlib for an associated display.
|
||||
|
|
|
|||
|
|
@ -31,7 +31,10 @@
|
|||
#include "util/u_dl.h"
|
||||
#include "sw/dri/dri_sw_winsys.h"
|
||||
#include "sw/null/null_sw_winsys.h"
|
||||
#ifdef HAVE_PIPE_LOADER_XLIB
|
||||
/* Explicitly wrap the header to ease build without X11 headers */
|
||||
#include "sw/xlib/xlib_sw_winsys.h"
|
||||
#endif
|
||||
#include "target-helpers/inline_sw_helper.h"
|
||||
#include "state_tracker/drisw_api.h"
|
||||
|
||||
|
|
@ -49,7 +52,7 @@ static struct sw_winsys *(*backends[])() = {
|
|||
null_sw_create
|
||||
};
|
||||
|
||||
#ifdef HAVE_WINSYS_XLIB
|
||||
#ifdef HAVE_PIPE_LOADER_XLIB
|
||||
bool
|
||||
pipe_loader_sw_probe_xlib(struct pipe_loader_device **devs, Display *display)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -50,6 +50,13 @@ gbm_gallium_drm_la_LIBADD = \
|
|||
$(LIBDRM_LIBS) \
|
||||
-lm
|
||||
|
||||
if NEED_PIPE_LOADER_XLIB
|
||||
gbm_gallium_drm_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/winsys/sw/xlib/libws_xlib.la \
|
||||
-lX11 -lXext -lXfixes \
|
||||
$(LIBDRM_LIBS)
|
||||
endif
|
||||
|
||||
gbm_gallium_drm_la_LDFLAGS = -no-undefined -avoid-version -module
|
||||
|
||||
# FIXME: this shouldn't be needed
|
||||
|
|
|
|||
|
|
@ -28,6 +28,13 @@ lib@OPENCL_LIBNAME@_la_LIBADD = \
|
|||
-lclangBasic \
|
||||
$(LLVM_LIBS)
|
||||
|
||||
if NEED_PIPE_LOADER_XLIB
|
||||
lib@OPENCL_LIBNAME@_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/winsys/sw/xlib/libws_xlib.la \
|
||||
-lX11 -lXext -lXfixes \
|
||||
$(LIBDRM_LIBS)
|
||||
endif
|
||||
|
||||
lib@OPENCL_LIBNAME@_la_SOURCES =
|
||||
|
||||
# Force usage of a C++ linker
|
||||
|
|
|
|||
|
|
@ -48,6 +48,13 @@ libxatracker_la_LIBADD = \
|
|||
$(LIBUDEV_LIBS) \
|
||||
$(LIBDRM_LIBS)
|
||||
|
||||
if NEED_PIPE_LOADER_XLIB
|
||||
libxatracker_la_LIBADD += \
|
||||
$(top_builddir)/src/gallium/winsys/sw/xlib/libws_xlib.la \
|
||||
-lX11 -lXext -lXfixes \
|
||||
$(LIBDRM_LIBS)
|
||||
endif
|
||||
|
||||
libxatracker_la_LDFLAGS = \
|
||||
-no-undefined \
|
||||
-version-number $(XA_MAJOR):$(XA_MINOR):$(XA_TINY)
|
||||
|
|
|
|||
|
|
@ -20,6 +20,13 @@ LDADD = $(GALLIUM_PIPE_LOADER_CLIENT_LIBS) \
|
|||
$(PTHREAD_LIBS) \
|
||||
-lm
|
||||
|
||||
if NEED_PIPE_LOADER_XLIB
|
||||
LDADD += \
|
||||
$(top_builddir)/src/gallium/winsys/sw/xlib/libws_xlib.la \
|
||||
-lX11 -lXext -lXfixes \
|
||||
$(LIBDRM_LIBS)
|
||||
endif
|
||||
|
||||
noinst_PROGRAMS = compute tri quad-tex
|
||||
|
||||
compute_SOURCES = compute.c
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue