[Mesa-dev] [PATCH 3/7] st/omx/tizonia: Add --enable-omx-tizonia flag and build files
Gurkirpal Singh
gurkirpal204 at gmail.com
Wed Nov 29 04:02:12 UTC 2017
Allow only bellagio or tizonia to be used at the same time.
Detect tizonia package config file
Generate libomx_mesa.so and install it to libtizcore.pc::pluginsdir
Only compile empty source (target.c) for now.
GSoC Project link: https://summerofcode.withgoogle.com/projects/#4737166321123328
---
configure.ac | 46 +++++++++++++++++++++-
src/gallium/Makefile.am | 4 ++
src/gallium/state_trackers/omx/Makefile.am | 13 ++++++
src/gallium/state_trackers/omx/tizonia/Makefile.am | 36 +++++++++++++++++
.../state_trackers/omx/tizonia/Makefile.sources | 1 +
src/gallium/targets/omx/Makefile.am | 19 ++++++++-
src/gallium/targets/omx/omx.sym | 1 +
7 files changed, 116 insertions(+), 4 deletions(-)
create mode 100644 src/gallium/state_trackers/omx/tizonia/Makefile.am
create mode 100644 src/gallium/state_trackers/omx/tizonia/Makefile.sources
diff --git a/configure.ac b/configure.ac
index ee55363..68cea46 100644
--- a/configure.ac
+++ b/configure.ac
@@ -85,6 +85,7 @@ dnl Versions for external dependencies
DRI2PROTO_REQUIRED=2.8
GLPROTO_REQUIRED=1.4.14
LIBOMXIL_BELLAGIO_REQUIRED=0.0
+LIBOMXIL_TIZONIA_REQUIRED=0.9.0
LIBVA_REQUIRED=0.38.0
VDPAU_REQUIRED=1.1
WAYLAND_REQUIRED=1.11
@@ -1293,14 +1294,19 @@ AC_ARG_ENABLE([vdpau],
[enable_vdpau=auto])
AC_ARG_ENABLE([omx],
[AS_HELP_STRING([--enable-omx],
- [DEPRECATED: Use --enable-omx-bellagio instead @<:@default=auto@:>@])],
- [AC_MSG_ERROR([--enable-omx is deprecated. Use --enable-omx-bellagio instead.])],
+ [DEPRECATED: Use --enable-omx-bellagio or --enable-omx-tizonia instead @<:@default=auto@:>@])],
+ [AC_MSG_ERROR([--enable-omx is deprecated. Use --enable-omx-bellagio or --enable-omx-tizonia instead.])],
[])
AC_ARG_ENABLE([omx-bellagio],
[AS_HELP_STRING([--enable-omx-bellagio],
[enable OpenMAX Bellagio library @<:@default=disabled@:>@])],
[enable_omx_bellagio="$enableval"],
[enable_omx_bellagio=no])
+AC_ARG_ENABLE([omx-tizonia],
+ [AS_HELP_STRING([--enable-omx-tizonia],
+ [enable OpenMAX Tizonia library @<:@default=disabled@:>@])],
+ [enable_omx_tizonia="$enableval"],
+ [enable_omx_tizonia=no])
AC_ARG_ENABLE([va],
[AS_HELP_STRING([--enable-va],
[enable va library @<:@default=auto@:>@])],
@@ -1352,11 +1358,17 @@ if test "x$enable_opengl" = xno -a \
"x$enable_xvmc" = xno -a \
"x$enable_vdpau" = xno -a \
"x$enable_omx_bellagio" = xno -a \
+ "x$enable_omx_tizonia" = xno -a \
"x$enable_va" = xno -a \
"x$enable_opencl" = xno; then
AC_MSG_ERROR([at least one API should be enabled])
fi
+if test "x$enable_omx_bellagio" = xyes -a \
+ "x$enable_omx_tizonia" = xyes; then
+ AC_MSG_ERROR([Can't enable both bellagio and tizonia at same time])
+fi
+
# Building OpenGL ES1 and/or ES2 without OpenGL is not supported on mesa 9.0.x
if test "x$enable_opengl" = xno -a \
"x$enable_gles1" = xyes; then
@@ -2197,6 +2209,10 @@ if test -n "$with_gallium_drivers" -a "x$with_gallium_drivers" != xswrast; then
PKG_CHECK_EXISTS([libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED], [enable_omx_bellagio=yes], [enable_omx_bellagio=no])
fi
+ if test "x$enable_omx_tizonia" = xauto -a "x$have_omx_platform" = xyes; then
+ PKG_CHECK_EXISTS([libtizonia >= $LIBOMXIL_TIZONIA_REQUIRED], [enable_omx_tizonia=yes], [enable_omx_tizonia=no])
+ fi
+
if test "x$enable_va" = xauto -a "x$have_va_platform" = xyes; then
PKG_CHECK_EXISTS([libva >= $LIBVA_REQUIRED], [enable_va=yes], [enable_va=no])
fi
@@ -2206,6 +2222,7 @@ if test "x$enable_dri" = xyes -o \
"x$enable_xvmc" = xyes -o \
"x$enable_vdpau" = xyes -o \
"x$enable_omx_bellagio" = xyes -o \
+ "x$enable_omx_tizonia" = xyes -o \
"x$enable_va" = xyes; then
need_gallium_vl=yes
fi
@@ -2214,6 +2231,7 @@ AM_CONDITIONAL(NEED_GALLIUM_VL, test "x$need_gallium_vl" = xyes)
if test "x$enable_xvmc" = xyes -o \
"x$enable_vdpau" = xyes -o \
"x$enable_omx_bellagio" = xyes -o \
+ "x$enable_omx_tizonia" = xyes -o \
"x$enable_va" = xyes; then
if echo $platforms | grep -q "x11"; then
PKG_CHECK_MODULES([VL], [x11-xcb xcb xcb-dri2 >= $XCBDRI2_REQUIRED])
@@ -2247,9 +2265,23 @@ if test "x$enable_omx_bellagio" = xyes; then
fi
PKG_CHECK_MODULES([OMX_BELLAGIO], [libomxil-bellagio >= $LIBOMXIL_BELLAGIO_REQUIRED])
gallium_st="$gallium_st omx_bellagio"
+ AC_DEFINE([ENABLE_ST_OMX_BELLAGIO], 1, [Use Bellagio for OMX IL])
fi
AM_CONDITIONAL(HAVE_ST_OMX_BELLAGIO, test "x$enable_omx_bellagio" = xyes)
+if test "x$enable_omx_tizonia" = xyes; then
+ if test "x$have_omx_platform" != xyes; then
+ AC_MSG_ERROR([OMX requires at least one of the x11 or drm platforms])
+ fi
+ PKG_CHECK_MODULES([OMX_TIZONIA],
+ [libtizonia >= $LIBOMXIL_TIZONIA_REQUIRED
+ tizilheaders >= $LIBOMXIL_TIZONIA_REQUIRED
+ libtizplatform >= $LIBOMXIL_TIZONIA_REQUIRED])
+ gallium_st="$gallium_st omx_tizonia"
+ AC_DEFINE([ENABLE_ST_OMX_TIZONIA], 1, [Use Tizoina for OMX IL])
+fi
+AM_CONDITIONAL(HAVE_ST_OMX_TIZONIA, test "x$enable_omx_tizonia" = xyes)
+
if test "x$enable_va" = xyes; then
if test "x$have_va_platform" != xyes; then
AC_MSG_ERROR([VA requires at least one of the x11 drm or wayland platforms])
@@ -2423,6 +2455,15 @@ AC_ARG_WITH([omx-bellagio-libdir],
$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libomxil-bellagio`])
AC_SUBST([OMX_BELLAGIO_LIB_INSTALL_DIR])
+dnl Directory for OMX_TIZONIA libs
+
+AC_ARG_WITH([omx-tizonia-libdir],
+ [AS_HELP_STRING([--with-omx-tizonia-libdir=DIR],
+ [directory for the OMX_TIZONIA libraries])],
+ [OMX_TIZONIA_LIB_INSTALL_DIR="$withval"],
+ [OMX_TIZONIA_LIB_INSTALL_DIR=`$PKG_CONFIG --define-variable=libdir=\$libdir --variable=pluginsdir libtizcore`])
+AC_SUBST([OMX_TIZONIA_LIB_INSTALL_DIR])
+
dnl Directory for VA libs
AC_ARG_WITH([va-libdir],
@@ -2946,6 +2987,7 @@ AC_CONFIG_FILES([Makefile
src/gallium/state_trackers/nine/Makefile
src/gallium/state_trackers/omx/Makefile
src/gallium/state_trackers/omx/bellagio/Makefile
+ src/gallium/state_trackers/omx/tizonia/Makefile
src/gallium/state_trackers/osmesa/Makefile
src/gallium/state_trackers/va/Makefile
src/gallium/state_trackers/vdpau/Makefile
diff --git a/src/gallium/Makefile.am b/src/gallium/Makefile.am
index 4076478..b6fbadb 100644
--- a/src/gallium/Makefile.am
+++ b/src/gallium/Makefile.am
@@ -158,6 +158,10 @@ if HAVE_ST_OMX_BELLAGIO
SUBDIRS += state_trackers/omx targets/omx
endif
+if HAVE_ST_OMX_TIZONIA
+SUBDIRS += state_trackers/omx targets/omx
+endif
+
if HAVE_GALLIUM_OSMESA
SUBDIRS += state_trackers/osmesa targets/osmesa
endif
diff --git a/src/gallium/state_trackers/omx/Makefile.am b/src/gallium/state_trackers/omx/Makefile.am
index b80a5e1..de6eb64 100644
--- a/src/gallium/state_trackers/omx/Makefile.am
+++ b/src/gallium/state_trackers/omx/Makefile.am
@@ -23,6 +23,7 @@
include Makefile.sources
include $(top_srcdir)/src/gallium/Automake.inc
+if HAVE_ST_OMX_BELLAGIO
SUBDIRS = bellagio
AM_CFLAGS = \
@@ -31,6 +32,18 @@ AM_CFLAGS = \
$(VL_CFLAGS) \
$(XCB_DRI3_CFLAGS) \
$(OMX_BELLAGIO_CFLAGS)
+else
+SUBDIRS = tizonia
+
+AM_CFLAGS = \
+ $(GALLIUM_CFLAGS) \
+ $(VISIBILITY_CFLAGS) \
+ $(VL_CFLAGS) \
+ $(XCB_DRI3_CFLAGS) \
+ $(OMX_TIZONIA_CFLAGS) \
+ $(OMX_TIZILHEADERS_CFLAGS) \
+ $(OMX_TIZPLATFORM_CFLAGS)
+endif
noinst_LTLIBRARIES = libomxtracker_common.la
diff --git a/src/gallium/state_trackers/omx/tizonia/Makefile.am b/src/gallium/state_trackers/omx/tizonia/Makefile.am
new file mode 100644
index 0000000..0f72e39
--- /dev/null
+++ b/src/gallium/state_trackers/omx/tizonia/Makefile.am
@@ -0,0 +1,36 @@
+# 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 Makefile.sources
+include $(top_srcdir)/src/gallium/Automake.inc
+
+AM_CFLAGS = \
+ -I$(top_srcdir)/src/gallium/state_trackers/omx \
+ $(GALLIUM_CFLAGS) \
+ $(VISIBILITY_CFLAGS) \
+ $(VL_CFLAGS) \
+ $(XCB_DRI3_CFLAGS) \
+ $(OMX_TIZONIA_CFLAGS) \
+ $(OMX_TIZILHEADERS_CFLAGS) \
+ $(OMX_TIZPLATFORM_CFLAGS)
+
+noinst_LTLIBRARIES = libomxtiztracker.la
+
+libomxtiztracker_la_SOURCES = $(C_SOURCES)
diff --git a/src/gallium/state_trackers/omx/tizonia/Makefile.sources b/src/gallium/state_trackers/omx/tizonia/Makefile.sources
new file mode 100644
index 0000000..9103ca8
--- /dev/null
+++ b/src/gallium/state_trackers/omx/tizonia/Makefile.sources
@@ -0,0 +1 @@
+C_SOURCES :=
diff --git a/src/gallium/targets/omx/Makefile.am b/src/gallium/targets/omx/Makefile.am
index e323616..627d396 100644
--- a/src/gallium/targets/omx/Makefile.am
+++ b/src/gallium/targets/omx/Makefile.am
@@ -3,7 +3,12 @@ include $(top_srcdir)/src/gallium/Automake.inc
AM_CFLAGS = \
$(GALLIUM_TARGET_CFLAGS)
+if HAVE_ST_OMX_BELLAGIO
omxdir = $(OMX_BELLAGIO_LIB_INSTALL_DIR)
+else
+omxdir = $(OMX_TIZONIA_LIB_INSTALL_DIR)
+endif
+
omx_LTLIBRARIES = libomx_mesa.la
nodist_EXTRA_libomx_mesa_la_SOURCES = dummy.cpp
@@ -24,15 +29,25 @@ endif # HAVE_LD_VERSION_SCRIPT
libomx_mesa_la_LIBADD = \
$(top_builddir)/src/gallium/state_trackers/omx/libomxtracker_common.la \
- $(top_builddir)/src/gallium/state_trackers/omx/bellagio/libomxtracker.la \
$(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la \
$(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \
$(top_builddir)/src/gallium/auxiliary/libgallium.la \
$(top_builddir)/src/util/libmesautil.la \
- $(OMX_BELLAGIO_LIBS) \
$(LIBDRM_LIBS) \
$(GALLIUM_COMMON_LIB_DEPS)
+if HAVE_ST_OMX_BELLAGIO
+libomx_mesa_la_LIBADD += \
+ $(top_builddir)/src/gallium/state_trackers/omx/bellagio/libomxtracker.la \
+ $(OMX_BELLAGIO_LIBS)
+else
+libomx_mesa_la_LIBADD += \
+ $(top_builddir)/src/gallium/state_trackers/omx/tizonia/libomxtiztracker.la \
+ $(OMX_TIZONIA_LIBS) \
+ $(OMX_TIZILHEADERS_LIBS) \
+ $(OMX_TIZPLATFORM_LIBS)
+endif
+
if HAVE_PLATFORM_X11
libomx_mesa_la_LIBADD += \
$(VL_LIBS) \
diff --git a/src/gallium/targets/omx/omx.sym b/src/gallium/targets/omx/omx.sym
index e8a2876..07b65e5 100644
--- a/src/gallium/targets/omx/omx.sym
+++ b/src/gallium/targets/omx/omx.sym
@@ -1,5 +1,6 @@
{
global:
+ OMX_ComponentInit;
omx_component_library_Setup;
# Workaround for an LLVM warning with -simplifycfg-sink-common
--
2.7.4
More information about the mesa-dev
mailing list