[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