[Mesa-dev] [PATCH 3/5] meson: Re-add auto option for omx

Eric Engestrom eric.engestrom at imgtec.com
Wed Mar 7 18:08:33 UTC 2018


On Tuesday, 2018-03-06 11:57:14 -0800, Dylan Baker wrote:
> This re-adds the auto option for omx, without it we default to tizonia
> and the build fails almost immediately, this is especially obnoxious
> those building a driver that doesn't support the OMX state tracker to
> begin with.
> 
> CC: Gurkirpal Singh <gurkirpal204 at gmail.com>
> Fixes: bb5e27fab6087a5c1528a5faf507acce700e883c
>        ("st/omx/bellagio: Rename st and target directories")
> Signed-off-by: Dylan Baker <dylan.c.baker at intel.com>
> ---
>  meson.build                                | 67 ++++++++++++++++++++----------
>  meson_options.txt                          |  4 +-
>  src/gallium/meson.build                    |  2 +-
>  src/gallium/state_trackers/omx/meson.build | 18 ++++----
>  4 files changed, 56 insertions(+), 35 deletions(-)
> 
> diff --git a/meson.build b/meson.build
> index dd2fa603829..c85afdecee9 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -464,42 +464,63 @@ endif
>  
>  _omx = get_option('gallium-omx')
>  if not system_has_kms_drm
> -  if _omx != 'disabled'
> -    error('OMX state tracker can only be built on unix-like OSes.')
> -  else
> +  if ['auto', 'disabled'].contains(_omx)
>      _omx = 'disabled'
> +  else
> +    error('OMX state tracker can only be built on unix-like OSes.')
>    endif
>  elif not (with_platform_x11 or with_platform_drm)
> -  if _omx != 'disabled'
> -    error('OMX state tracker requires X11 or drm platform support.')
> -  else
> +  if ['auto', 'disabled'].contains(_omx)
>      _omx = 'disabled'
> +  else
> +    error('OMX state tracker requires X11 or drm platform support.')
>    endif
>  elif not (with_gallium_r600 or with_gallium_radeonsi or with_gallium_nouveau)
> -  if _omx != 'disabled'
> -    error('OMX state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau.')
> -  else
> +  if ['auto', 'disabled'].contains(_omx)
>      _omx = 'disabled'
> +  else
> +    error('OMX state tracker requires at least one of the following gallium drivers: r600, radeonsi, nouveau.')
>    endif
>  endif
> -with_gallium_omx = _omx != 'disabled'
> -gallium_omx = _omx
> +with_gallium_omx = _omx
>  dep_omx = []
>  dep_omx_other = []
> -if gallium_omx == 'bellagio'
> +if with_gallium_omx == 'bellagio' or with_gallium_omx == 'auto'
>    pre_args += '-DENABLE_ST_OMX_BELLAGIO'

I didn't quite get what Julien was saying at first, but he's right: the
above line should be moved ...

> -  dep_omx = dependency('libomxil-bellagio')
> -elif gallium_omx == 'tizonia'
> -  pre_args += '-DENABLE_ST_OMX_TIZONIA'
> -  dep_omx = dependency('libtizonia', version : '>= 0.10.0')
> -  dep_omx_other = [
> -    dependency('libtizplatform'),
> -    dependency('tizilheaders')
> -  ]
> +  dep_omx = dependency(
> +    'libomxil-bellagio', required : with_gallium_omx == 'bellagio'
> +  )
> +  if dep_omx.found()
> +    with_gallium_omx = 'bellagio'

... here

> +  endif
> +endif
> +if with_gallium_omx == 'tizonia' or with_gallium_omx == 'auto'
> +  if not (with_dri and with_egl)
> +    if with_gallium_omx == 'tizonia'
> +      error('OMX-Tizonia state tracker requires dri and egl')
> +    else
> +      with_gallium_omx == 'disabled'
> +    endif
> +  else
> +    pre_args += '-DENABLE_ST_OMX_TIZONIA'

same with this one, it should be moved ...

> +    dep_omx = dependency(
> +      'libtizonia', version : '>= 0.10.0',
> +      required : with_gallium_omx == 'tizonia',
> +    )
> +    dep_omx_other = [
> +      dependency('libtizplatform', required : with_gallium_omx == 'tizonia'),
> +      dependency('tizilheaders', required : with_gallium_omx == 'tizonia'),
> +    ]
> +    if dep_omx.found() and dep_omx_other[0].found() and dep_omx_other[1].found()
> +      with_gallium_omx = 'tizonia'

... here

With these two fixes, r-b stands :)

(Note, kind of a nit, but I'd prefer for _omx to be used until it's
fully defined, ie. `with_gallium_omx` should never be 'auto' imho)

> +    else
> +      with_gallium_omx = 'disabled'
> +    endif
> +  endif
>  endif
>  
>  omx_drivers_path = get_option('omx-libs-path')
> -if with_gallium_omx
> +if with_gallium_omx != 'disabled'
>    # Figure out where to put the omx driver.
>    # FIXME: this could all be vastly simplified by adding a 'defined_variable'
>    # argument to meson's get_pkgconfig_variable method.
> @@ -1193,8 +1214,8 @@ if with_platform_x11
>      dep_xxf86vm = dependency('xxf86vm', required : false)
>    endif
>    if (with_any_vk or with_glx == 'dri' or
> -       (with_gallium_vdpau or with_gallium_xvmc or with_gallium_omx or
> -        with_gallium_xa))
> +       (with_gallium_vdpau or with_gallium_xvmc or with_gallium_va or
> +        with_gallium_omx != 'disabled'))
>      dep_xcb = dependency('xcb')
>      dep_x11_xcb = dependency('x11-xcb')
>    endif
> diff --git a/meson_options.txt b/meson_options.txt
> index 50ae19685e7..a573290b774 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -90,8 +90,8 @@ option(
>  option(
>    'gallium-omx',
>    type : 'combo',
> -  value : 'tizonia',
> -  choices : ['disabled', 'bellagio', 'tizonia'],
> +  value : 'auto',
> +  choices : ['auto', 'disabled', 'bellagio', 'tizonia'],
>    description : 'enable gallium omx state tracker.',
>  )
>  option(
> diff --git a/src/gallium/meson.build b/src/gallium/meson.build
> index d3cbb76d94d..108234ad322 100644
> --- a/src/gallium/meson.build
> +++ b/src/gallium/meson.build
> @@ -170,7 +170,7 @@ if with_gallium_xvmc
>    subdir('state_trackers/xvmc')
>    subdir('targets/xvmc')
>  endif
> -if with_gallium_omx
> +if with_gallium_omx != 'disabled'
>    subdir('state_trackers/omx')
>    subdir('targets/omx')
>  endif
> diff --git a/src/gallium/state_trackers/omx/meson.build b/src/gallium/state_trackers/omx/meson.build
> index 9470468d753..b0c71a895ff 100644
> --- a/src/gallium/state_trackers/omx/meson.build
> +++ b/src/gallium/state_trackers/omx/meson.build
> @@ -28,7 +28,7 @@ files_omx = files(
>  	'vid_omx_common.c'
>  )
>  
> -if gallium_omx == 'bellagio'
> +if with_gallium_omx == 'bellagio'
>  files_omx += files(
>    'bellagio/entrypoint.c',
>    'bellagio/vid_dec.c',
> @@ -37,16 +37,16 @@ files_omx += files(
>    'bellagio/vid_dec_h265.c',
>    'bellagio/vid_enc.c'
>  )
> -elif gallium_omx == 'tizonia'
> +elif with_gallium_omx == 'tizonia'
>  files_omx += files(
>    'tizonia/entrypoint.c',
> -	'tizonia/h264d.c',
> -	'tizonia/h264dprc.c',
> -	'tizonia/h264dinport.c',
> -	'tizonia/h264e.c',
> -	'tizonia/h264eprc.c',
> -	'tizonia/h264einport.c',
> -	'tizonia/h264eoutport.c'
> +        'tizonia/h264d.c',
> +        'tizonia/h264dprc.c',
> +        'tizonia/h264dinport.c',
> +        'tizonia/h264e.c',
> +        'tizonia/h264eprc.c',
> +        'tizonia/h264einport.c',
> +        'tizonia/h264eoutport.c'
>  )
>  inc_st_omx = [
>    inc_st_omx,
> -- 
> 2.16.2
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list