[Mesa-dev] [PATCH v3 15/15] meson: build gallium xa state tracker

Marc Dietrich marvin24 at gmx.de
Tue Nov 14 10:51:38 UTC 2017


Hi Dylan,

Am Dienstag, 14. November 2017, 02:09:19 CET schrieb Dylan Baker:
> v2: - set with_gallium_xa when -Dgallium-xa=true
>     - install pkg config file
> ---
>  meson.build                               | 22 ++++++++
>  meson_options.txt                         |  7 +++
>  src/gallium/meson.build                   |  7 ++-
>  src/gallium/state_trackers/xa/meson.build | 45 +++++++++++++++++
>  src/gallium/targets/xa/meson.build        | 84
> +++++++++++++++++++++++++++++++ 5 files changed, 164 insertions(+), 1
> deletion(-)
>  create mode 100644 src/gallium/state_trackers/xa/meson.build
>  create mode 100644 src/gallium/targets/xa/meson.build
> 
> diff --git a/meson.build b/meson.build
> index 8c20523aab0..1d29eb67bfe 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -525,6 +525,28 @@ if va_drivers_path == ''
>    va_drivers_path = join_paths(get_option('libdir'), 'dri')
>  endif
> 
> +_xa = get_option('gallium-xa')
> +if _xa == 'auto'
> +  if not ['linux', 'bsd'].contains(host_machine.system())
> +    with_gallium_xa = false
> +  elif not (with_gallium_nouveau or with_gallium_freedreno or 
with_gallium_i915 
> +            or with_gallium_svga)

autotools don't not have such limitation. At least it gets build with gallium-
drivers=r600,swrast. However, not sure if it is useful.

Marc


> +    with_gallium_xa = false
> +  else
> +    with_gallium_xa = true
> +  endif
> +elif _xa == 'true'
> +  if not ['linux', 'bsd'].contains(host_machine.system())
> +    error('XA state tracker can only be built on unix-like OSes.')
> +  elif not (with_gallium_nouveau or with_gallium_freedreno or
> with_gallium_i915 +            or with_gallium_svga)
> +    error('XA state tracker requires at least one of the following gallium
> drivers: nouveau, freedreno, i915, svga.') +  endif
> +  with_gallium_xa = true
> +else
> +  with_gallium_xa = false
> +endif
> +
>  gl_pkgconfig_c_flags = []
>  if with_platform_x11
>    if with_any_vk or (with_glx == 'dri' and with_dri_platform == 'drm')
> diff --git a/meson_options.txt b/meson_options.txt
> index 0a9f7a9e403..bdeb1b7f587 100644
> --- a/meson_options.txt
> +++ b/meson_options.txt
> @@ -101,6 +101,13 @@ option(
>    value : '',
>    description : 'path to put va libraries. defaults to $libdir/dri.'
>  )
> +option(
> +  'gallium-xa',
> +  type : 'combo',
> +  value : 'auto',
> +  choices : ['auto', 'true', 'false'],
> +  description : 'enable gallium xa state tracker.',
> +)
>  option(
>    'vulkan-drivers',
>    type : 'string',
> diff --git a/src/gallium/meson.build b/src/gallium/meson.build
> index c379b600d87..8a072322a28 100644
> --- a/src/gallium/meson.build
> +++ b/src/gallium/meson.build
> @@ -111,6 +111,9 @@ endif
>  if with_gallium_va
>    subdir('state_trackers/va')
>  endif
> +if with_gallium_xa
> +  subdir('state_trackers/xa')
> +endif
>  # TODO: SWR
>  # TODO: clover
>  if with_dri and with_gallium
> @@ -134,6 +137,8 @@ endif
>  if with_gallium_va
>    subdir('targets/va')
>  endif
> -# TODO: xa
> +if with_gallium_xa
> +  subdir('targets/xa')
> +endif
>  # TODO: nine
>  # TODO: tests
> diff --git a/src/gallium/state_trackers/xa/meson.build
> b/src/gallium/state_trackers/xa/meson.build new file mode 100644
> index 00000000000..109abc10b7d
> --- /dev/null
> +++ b/src/gallium/state_trackers/xa/meson.build
> @@ -0,0 +1,45 @@
> +# Copyright © 2017 Intel Corporation
> +
> +# 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 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.
> +
> +xa_version = ['2', '3', '0']
> +
> +xa_conf = configuration_data()
> +xa_conf.set('XA_MAJOR', xa_version[0])
> +xa_conf.set('XA_MINOR', xa_version[1])
> +xa_conf.set('XA_PATCH', xa_version[2])
> +
> +xa_tracker_h = configure_file(
> +  configuration : xa_conf,
> +  input : 'xa_tracker.h.in',
> +  output : 'xa_tracker.h',
> +  install_dir : get_option('includedir'),
> +)
> +
> +libxa_st = static_library(
> +  'xa_st',
> +  [xa_tracker_h, files(
> +    'xa_composite.c', 'xa_context.c', 'xa_renderer.c', 'xa_tgsi.c',
> +    'xa_tracker.c', 'xa_yuv.c',
> +  )],
> +  c_args : [c_vis_args, '-pedantic'],
> +  include_directories : inc_common,
> +)
> +
> +install_headers('xa_composite.h', 'xa_context.h')
> diff --git a/src/gallium/targets/xa/meson.build
> b/src/gallium/targets/xa/meson.build new file mode 100644
> index 00000000000..013aaaab8a0
> --- /dev/null
> +++ b/src/gallium/targets/xa/meson.build
> @@ -0,0 +1,84 @@
> +# Copyright © 2017 Intel Corporation
> +
> +# 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 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.
> +
> +# TODO: support non-static targets
> +# Static targets are always enabled in autotools (unless you modify
> +# configure.ac)
> +
> +xa_deps = []
> +xa_c_args = []
> +xa_link_args = []
> +xa_link_with = []
> +xa_link_depends = []
> +
> +if with_llvm
> +  xa_deps += dep_llvm
> +endif
> +if with_ld_version_script
> +  xa_link_args += ['-Wl,--version-script',
> join_paths(meson.current_source_dir(), 'xa.sym')] +  xa_link_depends +=
> files('xa.sym')
> +endif
> +
> +if with_gallium_nouveau
> +  xa_c_args += '-DGALLIUM_NOUVEAU'
> +  xa_link_with += [libnouveau, libnouveauwinsys]
> +  xa_deps += dep_libdrm_nouveau
> +endif
> +if with_gallium_i915
> +  xa_c_args += '-DGALLIUM_I915'
> +  xa_link_with += [libi915, libi915drm]
> +  xa_deps += dep_libdrm_intel
> +endif
> +if with_gallium_svga
> +  xa_c_args += '-DGALLIUM_VMWGFX'
> +  xa_link_with += [libsvga, libsvgadrm]
> +endif
> +if with_gallium_freedreno
> +  xa_c_args += '-DGALLIUM_FREEDRENO'
> +  xa_link_with += [libfreedreno, libfreedrenowinsys]
> +  xa_deps += dep_libdrm_freedreno
> +endif
> +
> +libxatracker = shared_library(
> +  'xatracker',
> +  'target.c',
> +  c_args : [c_vis_args, xa_c_args],
> +  cpp_args : cpp_vis_args,
> +  link_args : [xa_link_args, ld_args_gc_sections],
> +  include_directories : [
> +    inc_common, inc_util, inc_gallium_winsys, inc_gallium_drivers,
> +  ],
> +  link_with : [
> +    libxa_st, libgalliumvl_stub, libgallium, libmesa_util, libnir,
> +    libpipe_loader_static, libws_null, libwsw, xa_link_with,
> +  ],
> +  link_depends : xa_link_depends,
> +  dependencies : [
> +    dep_xcb, dep_x11_xcb, dep_xcb_dri2, dep_xcb_dri3, dep_libdrm, xa_deps,
> +  ],
> +  install : true,
> +)
> +
> +pkg.generate(
> +  name : 'xatracker',
> +  description : 'Xorg gallium3D acceleration library',
> +  version : '.'.join(xa_version),
> +  libraries : libxatracker,
> +)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 484 bytes
Desc: This is a digitally signed message part.
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171114/d44bd12b/attachment.sig>


More information about the mesa-dev mailing list