Re: [Mesa-dev] [PATCH v3 15/15] meson: build gallium xa state tracker
Quoting Marc Dietrich (2017-11-14 02:51:38) > 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 autotools does the wrong thing in this case. For XA it checks that softpipe (gallium swrast) + one non-swrast gallium driver is built. XA only works with SVGA, freedreno, nouveau, and i915g though, so I've set the requirement to match what the state_tracker actually does. You can look at src/gallium/targets/xa/Makefile.am and see that it only works with these drivers. Dylan signature.asc Description: signature ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH v3 15/15] meson: build gallium xa state tracker
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 000..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',
[Mesa-dev] [PATCH v3 15/15] meson: build gallium xa state tracker
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) +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 000..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 000..013b8a0 --- /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