HAVE_GALLIUM_SVGA=yes
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe"
gallium_require_drm_loader
- gallium_check_st "svga/drm" "dri-vmwgfx" ""
+ gallium_check_st "svga/drm" "dri-vmwgfx" "xa/vmwgfx"
;;
xi915)
HAVE_GALLIUM_I915=yes
PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
gallium_require_drm_loader
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915"
- gallium_check_st "i915/drm" "dri-i915"
+ gallium_check_st "i915/drm" "dri-i915" "xa/i915"
DRICOMMON_NEED_LIBDRM=yes
;;
xilo)
PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED])
gallium_require_drm_loader
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS ilo"
- gallium_check_st "intel/drm" "dri-ilo"
+ gallium_check_st "intel/drm" "dri-ilo" "xa/ilo"
DRICOMMON_NEED_LIBDRM=yes
;;
xr300)
gallium_require_drm_loader
gallium_require_llvm "Gallium R300"
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS r300"
- gallium_check_st "radeon/drm" "r300/dri" "" "" ""
+ gallium_check_st "radeon/drm" "r300/dri" "xa/r300" "" ""
DRICOMMON_NEED_LIBDRM=yes
;;
xr600)
if test "x$enable_opencl" = xyes; then
LLVM_COMPONENTS="${LLVM_COMPONENTS} bitreader asmparser"
fi
- gallium_check_st "radeon/drm" "r600/dri" "" "xvmc/r600" "vdpau/r600" "omx/r600"
+ gallium_check_st "radeon/drm" "r600/dri" "xa/r600" "xvmc/r600" "vdpau/r600" "omx/r600"
DRICOMMON_NEED_LIBDRM=yes
;;
xradeonsi)
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS radeonsi"
radeon_llvm_check "radeonsi"
require_egl_drm "radeonsi"
- gallium_check_st "radeon/drm" "radeonsi/dri" "" "" "vdpau/radeonsi" "omx/radeonsi"
+ gallium_check_st "radeon/drm" "radeonsi/dri" "xa/radeonsi" "" "vdpau/radeonsi" "omx/radeonsi"
DRICOMMON_NEED_LIBDRM=yes
;;
xnouveau)
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" "" "xvmc/nouveau" "vdpau/nouveau" "omx/nouveau"
+ gallium_check_st "nouveau/drm" "dri-nouveau" "xa/nouveau" "xvmc/nouveau" "vdpau/nouveau" "omx/nouveau"
DRICOMMON_NEED_LIBDRM=yes
;;
xfreedreno)
PKG_CHECK_MODULES([FREEDRENO], [libdrm_freedreno >= $LIBDRM_FREEDRENO_REQUIRED])
gallium_require_drm_loader
GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS freedreno"
- gallium_check_st "freedreno/drm" "dri-freedreno" "" "" ""
+ gallium_check_st "freedreno/drm" "dri-freedreno" "xa/freedreno" "" ""
DRICOMMON_NEED_LIBDRM=yes
;;
xswrast)
AM_CPPFLAGS = \
$(GALLIUM_PIPE_LOADER_DEFINES) \
- -DPIPE_SEARCH_DIR=\"$(libdir)/gallium-pipe\" \
- -I$(top_srcdir)/src/gallium/targets/xa \
- -I$(top_srcdir)/src/gallium/ \
- -I$(top_srcdir)/src/gallium/winsys \
- -I$(top_srcdir)/src/gallium/drivers
+ -DPIPE_SEARCH_DIR=\"$(libdir)/gallium-pipe\"
+
+if HAVE_GALLIUM_STATIC_TARGETS
+AM_CPPFLAGS += \
+ -DGALLIUM_STATIC_TARGETS=1
+endif
xa_includedir = $(includedir)
xa_include_HEADERS = \
if (!xa)
return NULL;
+#if GALLIUM_STATIC_TARGETS
+ xa->screen = dd_create_screen(drm_fd);
+#else
if (pipe_loader_drm_probe_fd(&xa->dev, drm_fd, false))
xa->screen = pipe_loader_create_screen(xa->dev, PIPE_SEARCH_DIR);
+#endif
if (!xa->screen)
goto out_no_screen;
out_no_pipe:
xa->screen->destroy(xa->screen);
out_no_screen:
+#if !GALLIUM_STATIC_TARGETS
if (xa->dev)
pipe_loader_release(&xa->dev, 1);
+#endif
free(xa);
return NULL;
}
free(xa->supported_formats);
xa_context_destroy(xa->default_ctx);
xa->screen->destroy(xa->screen);
+#if !GALLIUM_STATIC_TARGETS
pipe_loader_release(&xa->dev, 1);
+#endif
free(xa);
}
include $(top_srcdir)/src/gallium/Automake.inc
-AM_CPPFLAGS = \
- -I$(top_srcdir)/include \
- -I$(top_srcdir)/src/gallium/state_trackers/xa \
- -I$(top_srcdir)/src/gallium/winsys
-
AM_CFLAGS = \
- $(GALLIUM_CFLAGS) \
- $(LIBDRM_CFLAGS)
+ $(GALLIUM_TARGET_CFLAGS)
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = xatracker.pc
libxatracker_la_SOURCES =
libxatracker_la_LIBADD = \
- $(top_builddir)/src/gallium/auxiliary/pipe-loader/libpipe_loader.la \
$(top_builddir)/src/gallium/state_trackers/xa/libxatracker.la \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
- $(GALLIUM_PIPE_LOADER_WINSYS_LIBS) \
- $(GALLIUM_PIPE_LOADER_LIBS) \
$(LIBDRM_LIBS) \
$(GALLIUM_COMMON_LIB_DEPS)
-Wl,--version-script=$(top_srcdir)/src/gallium/targets/xa/xa.sym
endif
+if HAVE_GALLIUM_STATIC_TARGETS
+
+STATIC_TARGET_CPPFLAGS =
+STATIC_TARGET_LIB_DEPS = \
+ $(top_builddir)/src/loader/libloader.la
+
+if HAVE_GALLIUM_I915
+STATIC_TARGET_CPPFLAGS += -DGALLIUM_I915
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/winsys/i915/drm/libi915drm.la \
+ $(top_builddir)/src/gallium/drivers/i915/libi915.la \
+ $(INTEL_LIBS)
+endif
+
+if HAVE_GALLIUM_ILO
+STATIC_TARGET_CPPFLAGS += -DGALLIUM_ILO
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/winsys/intel/drm/libintelwinsys.la \
+ $(top_builddir)/src/gallium/drivers/ilo/libilo.la \
+ $(INTEL_LIBS)
+endif
+
+if HAVE_GALLIUM_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
+
+if NEED_RADEON_DRM_WINSYS
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/winsys/radeon/drm/libradeonwinsys.la
+endif
+
+if HAVE_GALLIUM_RADEON_COMMON
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/drivers/radeon/libradeon.la
+endif
+
+if HAVE_GALLIUM_R300
+STATIC_TARGET_CPPFLAGS += -DGALLIUM_R300
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/drivers/r300/libr300.la \
+ $(top_builddir)/src/gallium/drivers/r300/libr300-helper.la \
+ $(RADEON_LIBS)
+endif
+
+if HAVE_GALLIUM_R600
+STATIC_TARGET_CPPFLAGS += -DGALLIUM_R600
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/drivers/r600/libr600.la \
+ $(RADEON_LIBS)
+endif
+
+if HAVE_GALLIUM_RADEONSI
+STATIC_TARGET_CPPFLAGS += -DGALLIUM_RADEONSI
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/drivers/radeonsi/libradeonsi.la \
+ $(RADEON_LIBS)
+endif
+
+if HAVE_GALLIUM_SVGA
+STATIC_TARGET_CPPFLAGS += -DGALLIUM_VMWGFX
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/winsys/svga/drm/libsvgadrm.la \
+ $(top_builddir)/src/gallium/drivers/svga/libsvga.la
+endif
+
+if HAVE_GALLIUM_FREEDRENO
+STATIC_TARGET_CPPFLAGS += -DGALLIUM_FREEDRENO
+STATIC_TARGET_LIB_DEPS += \
+ $(top_builddir)/src/gallium/winsys/freedreno/drm/libfreedrenodrm.la \
+ $(top_builddir)/src/gallium/drivers/freedreno/libfreedreno.la \
+ $(FREEDRENO_LIBS)
+
+endif
+
+libxatracker_la_SOURCES += target.c
+libxatracker_la_CPPFLAGS = $(STATIC_TARGET_CPPFLAGS)
+libxatracker_la_LIBADD += $(STATIC_TARGET_LIB_DEPS)
+
+else # HAVE_GALLIUM_STATIC_TARGETS
+
+libxatracker_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
libxatracker_la_LIBADD += $(LLVM_LIBS)
libxatracker_la_LDFLAGS += $(LLVM_LDFLAGS)
--- /dev/null
+#include "target-helpers/inline_drm_helper.h"