diff options
-rw-r--r-- | configure.ac | 5 | ||||
-rw-r--r-- | src/gallium/Automake.inc | 2 | ||||
-rw-r--r-- | src/gallium/targets/Makefile.am | 10 | ||||
-rw-r--r-- | src/gallium/targets/dri-nouveau/Makefile.am | 52 | ||||
-rw-r--r-- | src/gallium/targets/dri-nouveau/nouveau_dri.dyn | 3 | ||||
-rw-r--r-- | src/gallium/targets/dri-nouveau/target.c | 36 | ||||
-rw-r--r-- | src/gallium/targets/dri/Makefile.am | 103 | ||||
-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.c | 1 |
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" |