[PATCHv2 2/4] st/xa: use pipe-loader to get screen (original) (raw)

Rob Clark robdclark at gmail.com
Mon Feb 10 10:34:19 PST 2014


From: Rob Clark <robclark at freedesktop.org>

This lets multiple gallium drivers use XA.

Signed-off-by: Rob Clark <robclark at freedesktop.org>

configure.ac | 9 ++-- src/gallium/state_trackers/xa/Makefile.am | 1 + src/gallium/state_trackers/xa/xa_priv.h | 1 + src/gallium/state_trackers/xa/xa_tracker.c | 9 +++- src/gallium/targets/Makefile.am | 8 ++-- src/gallium/targets/xa-vmwgfx/Makefile.am | 61 ------------------------ src/gallium/targets/xa-vmwgfx/vmw_target.c | 26 ---------- src/gallium/targets/xa-vmwgfx/xatracker.pc.in | 9 ---- src/gallium/targets/xa/Makefile.am | 68 +++++++++++++++++++++++++++ src/gallium/targets/xa/xa.c | 49 +++++++++++++++++++ src/gallium/targets/xa/xa.h | 37 +++++++++++++++ src/gallium/targets/xa/xatracker.pc.in | 9 ++++ 12 files changed, 182 insertions(+), 105 deletions(-) delete mode 100644 src/gallium/targets/xa-vmwgfx/Makefile.am delete mode 100644 src/gallium/targets/xa-vmwgfx/vmw_target.c delete mode 100644 src/gallium/targets/xa-vmwgfx/xatracker.pc.in create mode 100644 src/gallium/targets/xa/Makefile.am create mode 100644 src/gallium/targets/xa/xa.c create mode 100644 src/gallium/targets/xa/xa.h create mode 100644 src/gallium/targets/xa/xatracker.pc.in

diff --git a/configure.ac b/configure.ac index cba6301..29ca954 100644 --- a/configure.ac +++ b/configure.ac @@ -1270,6 +1270,7 @@ dnl XA configuration dnl if test "x$enable_xa" = xyes; then GALLIUM_STATE_TRACKERS_DIRS="xa $GALLIUM_STATE_TRACKERS_DIRS" + enable_gallium_loader=yes fi AM_CONDITIONAL(HAVE_ST_XA, test "x$enable_xa" = xyes) @@ -1743,7 +1744,7 @@ if test "x$with_gallium_drivers" != x; then xsvga) HAVE_GALLIUM_SVGA=yes GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS svga softpipe" - gallium_check_st "svga/drm" "dri-vmwgfx" "xa-vmwgfx" + gallium_check_st "svga/drm" "dri-vmwgfx" "" ;; xi915) HAVE_GALLIUM_I915=yes @@ -1962,7 +1963,7 @@ AC_SUBST([XVMC_MAJOR], 1) AC_SUBST([XVMC_MINOR], 0) AC_SUBST([XA_MAJOR], 2) -AC_SUBST([XA_MINOR], 1) +AC_SUBST([XA_MINOR], 2) AC_SUBST([XA_TINY], 0) AC_SUBST([XA_VERSION], "$XA_MAJOR.$XA_MINOR.$XA_TINY") @@ -2035,6 +2036,8 @@ AC_CONFIG_FILES([Makefile src/gallium/targets/egl-static/Makefile src/gallium/targets/gbm/Makefile src/gallium/targets/opencl/Makefile + src/gallium/targets/xa/Makefile + src/gallium/targets/xa/xatracker.pc src/gallium/targets/osmesa/Makefile src/gallium/targets/osmesa/osmesa.pc src/gallium/targets/pipe-loader/Makefile @@ -2046,8 +2049,6 @@ AC_CONFIG_FILES([Makefile src/gallium/targets/r600/xvmc/Makefile src/gallium/targets/libgl-xlib/Makefile src/gallium/targets/vdpau-nouveau/Makefile - src/gallium/targets/xa-vmwgfx/Makefile - src/gallium/targets/xa-vmwgfx/xatracker.pc src/gallium/targets/xvmc-nouveau/Makefile src/gallium/tests/trivial/Makefile src/gallium/tests/unit/Makefile diff --git a/src/gallium/state_trackers/xa/Makefile.am b/src/gallium/state_trackers/xa/Makefile.am index 7d0b366..af79ccd 100644 --- a/src/gallium/state_trackers/xa/Makefile.am +++ b/src/gallium/state_trackers/xa/Makefile.am @@ -29,6 +29,7 @@ AM_CFLAGS =
$(VISIBILITY_CFLAGS) AM_CPPFLAGS =
+ -I$(top_srcdir)/src/gallium/targets/xa
-I$(top_srcdir)/src/gallium/
-I$(top_srcdir)/src/gallium/winsys
-I$(top_srcdir)/src/gallium/drivers diff --git a/src/gallium/state_trackers/xa/xa_priv.h b/src/gallium/state_trackers/xa/xa_priv.h index ee182e7..b99c214 100644 --- a/src/gallium/state_trackers/xa/xa_priv.h +++ b/src/gallium/state_trackers/xa/xa_priv.h @@ -74,6 +74,7 @@ struct xa_tracker { unsigned int format_map[XA_LAST_SURFACE_TYPE][2]; int d_depth_bits_last; int ds_depth_bits_last; + struct pipe_loader_device *dev; struct pipe_screen *screen; struct xa_context *default_ctx; }; diff --git a/src/gallium/state_trackers/xa/xa_tracker.c b/src/gallium/state_trackers/xa/xa_tracker.c index cda6501..6943a29 100644 --- a/src/gallium/state_trackers/xa/xa_tracker.c +++ b/src/gallium/state_trackers/xa/xa_tracker.c @@ -28,8 +28,10 @@ #include "xa_tracker.h" #include "xa_priv.h" +#include "xa.h" #include "pipe/p_state.h" #include "pipe/p_format.h" +#include "pipe-loader/pipe_loader.h" #include "state_tracker/drm_driver.h" #include "util/u_inlines.h" @@ -143,7 +145,9 @@ xa_tracker_create(int drm_fd) if (!xa) return NULL; - xa->screen = driver_descriptor.create_screen(drm_fd); + xa->dev = xa_pipe_probe(drm_fd); + if (xa->dev) + xa->screen = xa_pipe_create_screen(xa->dev); if (!xa->screen) goto out_no_screen; @@ -190,6 +194,8 @@ xa_tracker_create(int drm_fd) out_no_pipe: xa->screen->destroy(xa->screen); out_no_screen: + if (xa->dev) + xa_pipe_release(xa->dev); free(xa); return NULL; } @@ -200,6 +206,7 @@ xa_tracker_destroy(struct xa_tracker *xa) free(xa->supported_formats); xa_context_destroy(xa->default_ctx); xa->screen->destroy(xa->screen); + xa_pipe_release(xa->dev); free(xa); } diff --git a/src/gallium/targets/Makefile.am b/src/gallium/targets/Makefile.am index e356020..a7c70f4 100644 --- a/src/gallium/targets/Makefile.am +++ b/src/gallium/targets/Makefile.am @@ -34,6 +34,10 @@ if HAVE_GALLIUM_GBM SUBDIRS += gbm endif +if HAVE_ST_XA +SUBDIRS += xa +endif + if HAVE_CLOVER SUBDIRS += opencl endif @@ -42,10 +46,6 @@ if HAVE_GALLIUM_SVGA if HAVE_DRI SUBDIRS += dri-vmwgfx endif

-include $(top_srcdir)/src/gallium/Automake.inc

-AM_CFLAGS =
- -Wall -pedantic
- $(GALLIUM_CFLAGS)
- $(XORG_CFLAGS) -AM_CPPFLAGS =
- -I$(top_srcdir)/src/gallium/drivers
- -I$(top_srcdir)/src/gallium/winsys

-pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = xatracker.pc

-lib_LTLIBRARIES = libxatracker.la

-libxatracker_la_SOURCES = vmw_target.c

-libxatracker_la_LDFLAGS = -version-number (XAMAJOR):(XA_MAJOR):(XAMAJOR):(XA_MINOR):$(XA_TINY)

-libxatracker_la_LIBADD =
- $(top_builddir)/src/gallium/auxiliary/libgallium.la
- $(top_builddir)/src/gallium/state_trackers/xa/libxatracker.la
- $(top_builddir)/src/gallium/winsys/svga/drm/libsvgadrm.la
- $(top_builddir)/src/gallium/drivers/svga/libsvga.la
- $(top_builddir)/src/gallium/drivers/trace/libtrace.la
- $(top_builddir)/src/gallium/drivers/rbug/librbug.la

-nodist_EXTRA_libxatracker_la_SOURCES = dummy.cpp

-if HAVE_MESA_LLVM -libxatracker_la_LDFLAGS += $(LLVM_LDFLAGS) -libxatracker_la_LIBADD += $(LLVM_LIBS) -endif

-#include "target-helpers/inline_debug_helper.h" -#include "state_tracker/drm_driver.h" -#include "svga/drm/svga_drm_public.h" -#include "svga/svga_public.h"

-static struct pipe_screen * -create_screen(int fd) -{ - struct svga_winsys_screen *sws; - struct pipe_screen *screen;

1.8.5.3



More information about the dri-devel mailing list