[Mesa-dev] [PATCH 2/6] st/omx/tizonia: Add --enable-omx-tizonia flag and build files

Dylan Baker dylan at pnwbakers.com
Wed Jan 17 17:09:19 UTC 2018


The meson build for omx-bellagio has landed along with the other media state
trackers that are in tree. Currently there is a known bug with at least vdpau
and va-api (I suspect that the omx, va, and xvmc are affected as well) which
causes required symbols to not be exported, I'm still trying to resolve that.

For Tizonia, what I'd like to do is change the -Dgallium-omx argument to accept
['auto', 'bellagio', 'tizonia', 'disabled'] (this mirrors the glx option), with
auto trying to find bellagio and tizonia in some order and falling back to
disabled if neither is found.

The patches in this thread don't apply, there is some other work on you tree not
included maybe? Or I'd see about adding it (I don't think it would be too hard).
Do you have this series in a public git repo I could pull from?

Dylan

Quoting Leo Liu (2018-01-17 08:23:54)
> 
> 
> On 01/17/2018 11:19 AM, Gurkirpal Singh wrote:
> 
> 
> 
>     On Wed, Jan 17, 2018 at 8:22 PM, Leo Liu <leo.liu at amd.com> wrote:
> 
>         Hi Gurkirpal,
> 
>         Do we have patch 1 in the 6 patch set, or it hasn't arrived.
> 
> 
>     We do have a patch 1 which has been held for moderation for being too
>     large.
> 
> If there is no arrival tomorrow, please send it as attachment. Thanks.
> 
> 
> 
>         Also I haven't seen the updates for Meson build in the current set.
> 
> 
>     I wasn't sure if the changes needed to be added to this commit or add a new
>     commit.
> 
> 
> I think Dylan can give you advice on this for sure.
> 
> Thanks,
> Leo
> 
> 
>      
> 
> 
>         @Dylan, if possible, could you give an update for the Meson build on
>         the current set?
> 
> 
>         Thanks,
> 
>         Leo
> 
> 
> 
> 
>         On 01/17/2018 08:54 AM, Gurkirpal Singh wrote:
> 
>             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
> 
>             Acked-by: Leo Liu <leo.liu at amd.com>
>             Reviewed-by: Julien Isorce <julien.isorce at gmail.com>
>             ---
>               configure.ac                                       | 47
>             +++++++++++++++++++++-
>               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, 117 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 7675a45..1f7b163 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
>             @@ -1298,14 +1299,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@:>@])],
>             @@ -1357,11 +1363,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
>             @@ -2202,6 +2214,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
>             @@ -2211,6 +2227,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
>             @@ -2219,6 +2236,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])
>             @@ -2252,9 +2270,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])
>             @@ -2428,6 +2460,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],
>             @@ -2950,6 +2991,8 @@ AC_CONFIG_FILES([Makefile
>                                src/gallium/state_trackers/glx/xlib/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/lib
>             omxtracker.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/lib
>             omxtracker.la \
>             +       $(OMX_BELLAGIO_LIBS)
>             +else
>             +libomx_mesa_la_LIBADD += \
>             +       $(top_builddir)/src/gallium/state_trackers/omx/tizonia/libo
>             mxtiztracker.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
> 
> 
> 
> 
> 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180117/8fed7e4d/attachment-0001.sig>


More information about the mesa-dev mailing list