summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac5
-rw-r--r--src/gallium/Automake.inc2
-rw-r--r--src/gallium/targets/Makefile.am10
-rw-r--r--src/gallium/targets/dri-nouveau/Makefile.am52
-rw-r--r--src/gallium/targets/dri-nouveau/nouveau_dri.dyn3
-rw-r--r--src/gallium/targets/dri-nouveau/target.c36
-rw-r--r--src/gallium/targets/dri/Makefile.am103
-rw-r--r--src/gallium/targets/dri/dri.sym (renamed from src/gallium/targets/dri.sym)0
-rw-r--r--src/gallium/targets/dri/target.c1
9 files changed, 112 insertions, 100 deletions
diff --git a/configure.ac b/configure.ac
index 0e32db0abb7..db8780e651a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -852,6 +852,7 @@ esac
if test "x$enable_dri" = xyes; then
GALLIUM_WINSYS_DIRS="$GALLIUM_WINSYS_DIRS sw/dri"
GALLIUM_STATE_TRACKERS_DIRS="dri $GALLIUM_STATE_TRACKERS_DIRS"
+ enable_gallium_loader=yes
fi
if test "x$enable_gallium_osmesa" = xyes; then
@@ -1973,7 +1974,7 @@ if test -n "$with_gallium_drivers"; then
PKG_CHECK_MODULES([NOUVEAU], [libdrm_nouveau >= $LIBDRM_NOUVEAU_REQUIRED])
gallium_require_drm_loader
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS nouveau"
- gallium_check_st "nouveau/drm" "dri-nouveau" "xa/nouveau" "xvmc/nouveau" "vdpau/nouveau" "omx/nouveau"
+ gallium_check_st "nouveau/drm" "dri/nouveau" "xa/nouveau" "xvmc/nouveau" "vdpau/nouveau" "omx/nouveau"
;;
xfreedreno)
HAVE_GALLIUM_FREEDRENO=yes
@@ -2210,9 +2211,9 @@ AC_CONFIG_FILES([Makefile
src/gallium/targets/dri-freedreno/Makefile
src/gallium/targets/dri-i915/Makefile
src/gallium/targets/dri-ilo/Makefile
- src/gallium/targets/dri-nouveau/Makefile
src/gallium/targets/dri-swrast/Makefile
src/gallium/targets/dri-vmwgfx/Makefile
+ src/gallium/targets/dri/Makefile
src/gallium/targets/egl-static/Makefile
src/gallium/targets/gbm/Makefile
src/gallium/targets/libgl-xlib/Makefile
diff --git a/src/gallium/Automake.inc b/src/gallium/Automake.inc
index 4600b9c5b6b..e70a1363e1a 100644
--- a/src/gallium/Automake.inc
+++ b/src/gallium/Automake.inc
@@ -61,7 +61,7 @@ GALLIUM_DRI_LINKER_FLAGS = \
if HAVE_LD_VERSION_SCRIPT
GALLIUM_DRI_LINKER_FLAGS += \
- -Wl,--version-script=$(top_srcdir)/src/gallium/targets/dri.sym
+ -Wl,--version-script=$(top_srcdir)/src/gallium/targets/dri/dri.sym
endif
diff --git a/src/gallium/targets/Makefile.am b/src/gallium/targets/Makefile.am
index d86cd33af94..1a44c56ccfe 100644
--- a/src/gallium/targets/Makefile.am
+++ b/src/gallium/targets/Makefile.am
@@ -22,6 +22,10 @@
SUBDIRS =
+if HAVE_DRI2
+SUBDIRS += dri
+endif
+
if HAVE_X11_DRIVER
SUBDIRS += libgl-xlib
endif
@@ -96,12 +100,6 @@ SUBDIRS += radeonsi/dri
endif
endif
-if HAVE_GALLIUM_NOUVEAU
-if HAVE_DRI2
-SUBDIRS += dri-nouveau
-endif
-endif
-
if HAVE_GALLIUM_SOFTPIPE
if HAVE_DRISW
SUBDIRS += dri-swrast
diff --git a/src/gallium/targets/dri-nouveau/Makefile.am b/src/gallium/targets/dri-nouveau/Makefile.am
deleted file mode 100644
index a479040d6c7..00000000000
--- a/src/gallium/targets/dri-nouveau/Makefile.am
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright © 2012 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
-
-include $(top_srcdir)/src/gallium/Automake.inc
-
-AM_CFLAGS = \
- $(GALLIUM_DRI_CFLAGS)
-AM_CPPFLAGS = \
- -DGALLIUM_RBUG \
- -DGALLIUM_TRACE
-
-dridir = $(DRI_DRIVER_INSTALL_DIR)
-dri_LTLIBRARIES = nouveau_dri.la
-
-nodist_EXTRA_nouveau_dri_la_SOURCES = dummy.cpp
-nouveau_dri_la_SOURCES = target.c
-
-nouveau_dri_la_LDFLAGS = \
- $(GALLIUM_DRI_LINKER_FLAGS) \
- -Wl,--dynamic-list=$(srcdir)/nouveau_dri.dyn
-
-nouveau_dri_la_LIBADD = \
- $(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
- $(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm.la \
- $(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \
- $(top_builddir)/src/gallium/drivers/trace/libtrace.la \
- $(top_builddir)/src/gallium/drivers/rbug/librbug.la \
- $(top_builddir)/src/gallium/drivers/nouveau/libnouveau.la \
- $(GALLIUM_DRI_LIB_DEPS) \
- $(LIBDRM_LIBS) \
- $(NOUVEAU_LIBS)
-
-include $(top_srcdir)/install-gallium-links.mk
diff --git a/src/gallium/targets/dri-nouveau/nouveau_dri.dyn b/src/gallium/targets/dri-nouveau/nouveau_dri.dyn
deleted file mode 100644
index a10356b2792..00000000000
--- a/src/gallium/targets/dri-nouveau/nouveau_dri.dyn
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- nouveau_drm_screen_create;
-};
diff --git a/src/gallium/targets/dri-nouveau/target.c b/src/gallium/targets/dri-nouveau/target.c
deleted file mode 100644
index f0fcdd834dd..00000000000
--- a/src/gallium/targets/dri-nouveau/target.c
+++ /dev/null
@@ -1,36 +0,0 @@
-
-#include "target-helpers/inline_debug_helper.h"
-#include "state_tracker/drm_driver.h"
-#include "nouveau/drm/nouveau_drm_public.h"
-
-static struct pipe_screen *
-create_screen(int fd)
-{
- struct pipe_screen *screen;
-
- screen = nouveau_drm_screen_create(fd);
- if (!screen)
- return NULL;
-
- screen = debug_screen_wrap(screen);
-
- return screen;
-}
-
-static const struct drm_conf_ret share_fd_ret = {
- .type = DRM_CONF_BOOL,
- .val.val_int = true,
-};
-
-static const struct drm_conf_ret *drm_configuration(enum drm_conf conf)
-{
- switch (conf) {
- case DRM_CONF_SHARE_FD:
- return &share_fd_ret;
- default:
- break;
- }
- return NULL;
-}
-
-DRM_DRIVER_DESCRIPTOR("nouveau", "nouveau", create_screen, drm_configuration)
diff --git a/src/gallium/targets/dri/Makefile.am b/src/gallium/targets/dri/Makefile.am
new file mode 100644
index 00000000000..22202065dec
--- /dev/null
+++ b/src/gallium/targets/dri/Makefile.am
@@ -0,0 +1,103 @@
+include $(top_srcdir)/src/gallium/Automake.inc
+
+AM_CFLAGS = \
+ $(GALLIUM_TARGET_CFLAGS)
+
+AM_CPPFLAGS = \
+ -DGALLIUM_GALAHAD \
+ -DGALLIUM_NOOP \
+ -DGALLIUM_RBUG \
+ -DGALLIUM_TRACE
+
+dridir = $(DRI_DRIVER_INSTALL_DIR)
+dri_LTLIBRARIES = gallium_dri.la
+
+nodist_EXTRA_gallium_dri_la_SOURCES = dummy.cpp
+gallium_dri_la_SOURCES =
+
+gallium_dri_la_LDFLAGS = \
+ -shared \
+ -shrext .so \
+ -module \
+ -avoid-version \
+ -Wl,--dynamic-list=$(top_srcdir)/src/gallium/targets/dri-vdpau.dyn \
+ $(GC_SECTIONS)
+
+if HAVE_LD_VERSION_SCRIPT
+gallium_dri_la_LDFLAGS += \
+ -Wl,--version-script=$(top_srcdir)/src/gallium/targets/dri/dri.sym
+endif # HAVE_LD_VERSION_SCRIPT
+
+# XXX: Fold libdridrm/libdrisw as drivers become megadriver (__dri*DriverExtension) aware
+gallium_dri_la_LIBADD = \
+ $(top_builddir)/src/mesa/libmesagallium.la \
+ $(top_builddir)/src/mesa/drivers/dri/common/libdricommon.la \
+ $(top_builddir)/src/gallium/state_trackers/dri/drm/libdridrm_s.la \
+ $(top_builddir)/src/gallium/auxiliary/libgallium.la \
+ $(top_builddir)/src/gallium/drivers/galahad/libgalahad.la \
+ $(top_builddir)/src/gallium/drivers/noop/libnoop.la \
+ $(top_builddir)/src/gallium/drivers/rbug/librbug.la \
+ $(top_builddir)/src/gallium/drivers/trace/libtrace.la \
+ $(SELINUX_LIBS) \
+ $(EXPAT_LIBS) \
+ $(LIBDRM_LIBS) \
+ $(GALLIUM_COMMON_LIB_DEPS)
+
+if HAVE_GALLIUM_STATIC_TARGETS
+
+MEGADRIVERS =
+STATIC_TARGET_CPPFLAGS =
+STATIC_TARGET_LIB_DEPS = \
+ $(top_builddir)/src/loader/libloader.la
+
+if HAVE_GALLIUM_NOUVEAU
+MEGADRIVERS += nouveau
+STATIC_TARGET_CPPFLAGS += -DGALLIUM_NOUVEAU
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/winsys/nouveau/drm/libnouveaudrm.la \
+ $(top_builddir)/src/gallium/drivers/nouveau/libnouveau.la \
+ $(NOUVEAU_LIBS)
+endif
+
+gallium_dri_la_SOURCES += target.c
+AM_CPPFLAGS += $(STATIC_TARGET_CPPFLAGS)
+gallium_dri_la_LIBADD += $(STATIC_TARGET_LIB_DEPS)
+
+else # HAVE_GALLIUM_STATIC_TARGETS
+
+gallium_dri_la_LIBADD += \
+ $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
+ $(GALLIUM_PIPE_LOADER_WINSYS_LIBS) \
+ $(GALLIUM_PIPE_LOADER_LIBS)
+
+endif # HAVE_GALLIUM_STATIC_TARGETS
+
+if HAVE_MESA_LLVM
+gallium_dri_la_LIBADD += $(LLVM_LIBS)
+gallium_dri_la_LDFLAGS += $(LLVM_LDFLAGS)
+endif
+
+if HAVE_COMPAT_SYMLINKS
+# Add a link to allow setting LIBGL_DRIVERS_PATH to /lib/gallium of the build tree.
+all-local: $(dri_LTLIBRARIES)
+ $(AM_V_GEN)link_dir=$(top_builddir)/$(LIB_DIR)/gallium; \
+ $(MKDIR_P) $${link_dir}; \
+ for i in $(MEGADRIVERS); do \
+ j=gallium_dri.so; \
+ k=$${i}_dri.so; \
+ ln -f .libs/$${j} \
+ $${link_dir}/$${k}; \
+ done
+endif
+
+# hardlink each megadriver instance, but don't actually have
+# gallium_dri.so in the set of final installed files.
+install-data-hook:
+ $(AM_V_GEN)dest_dir=$(DESTDIR)/$(dridir); \
+ for i in $(MEGADRIVERS); do \
+ j=gallium_dri.so; \
+ k=$${i}_dri.so; \
+ ln -f $${dest_dir}/$${j} \
+ $${dest_dir}/$${k}; \
+ done; \
+ $(RM) -f $$dest_dir/gallium_dri.*
diff --git a/src/gallium/targets/dri.sym b/src/gallium/targets/dri/dri.sym
index c99aa09b4d9..c99aa09b4d9 100644
--- a/src/gallium/targets/dri.sym
+++ b/src/gallium/targets/dri/dri.sym
diff --git a/src/gallium/targets/dri/target.c b/src/gallium/targets/dri/target.c
new file mode 100644
index 00000000000..fde4a4a7dcf
--- /dev/null
+++ b/src/gallium/targets/dri/target.c
@@ -0,0 +1 @@
+#include "target-helpers/inline_drm_helper.h"