[Mesa-dev] [Mesa-stable] [PATCH] meson: gallium: add idep_nir dependency where it's used

Dylan Baker dylan at pnwbakers.com
Fri Feb 16 22:42:59 UTC 2018


Quoting Emil Velikov (2018-02-16 09:19:53)
> From: Emil Velikov <emil.velikov at collabora.com>
> 
> Currently there are two type of users of NIR (and hence idep_nir):
>  - gallium/aux - via tgsi_to_nir.c
>  - drivers - freedreno, radeonsi, vc4, vc5
> 
> Of the above, the aux. module and freedreno were missing the idep_nir.
> Adjust as needed and document.
> 
> To catch the fallout, consider the following:
>  - build only drivers that do not use NIR - say nouveau
>  - build target that does not pull libmesa_gallium - since that pulls
> libglsl and thus libnir
>  - disable the linker garbage collector - since it would otherwise
> discard tgsi_to_nir.c
>  - observe the link-time errors, since the NIR references pulled by
> tgsi_to_nir.c are unresolved.
> 
> Cc: 18.0 <mesa-stable at lists.freedesktop.org>
> Cc: Dylan Baker <dylan.c.baker at intel.com>
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
> This is a part of a larger WIP, although it also makes sense on its own.
> 
>  src/gallium/auxiliary/meson.build         | 2 +-
>  src/gallium/drivers/freedreno/meson.build | 2 ++
>  src/gallium/drivers/radeonsi/meson.build  | 1 +
>  src/gallium/drivers/vc4/meson.build       | 1 +
>  src/gallium/drivers/vc5/meson.build       | 1 +
>  5 files changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/src/gallium/auxiliary/meson.build b/src/gallium/auxiliary/meson.build
> index 6f1542d7ade..605c260f64d 100644
> --- a/src/gallium/auxiliary/meson.build
> +++ b/src/gallium/auxiliary/meson.build
> @@ -498,7 +498,7 @@ libgallium = static_library(
>    cpp_args : [cpp_vis_args, cpp_msvc_compat_args],
>    dependencies : [
>      dep_libdrm, dep_llvm, dep_unwind, dep_dl, dep_m, dep_thread, dep_lmsensors,
> -    idep_nir_headers,
> +    idep_nir,
>    ],
>    build_by_default : false,
>  )
> diff --git a/src/gallium/drivers/freedreno/meson.build b/src/gallium/drivers/freedreno/meson.build
> index ef70cc08c74..0d8a5908c40 100644
> --- a/src/gallium/drivers/freedreno/meson.build
> +++ b/src/gallium/drivers/freedreno/meson.build
> @@ -231,6 +231,8 @@ libfreedreno = static_library(
>  driver_freedreno = declare_dependency(
>    compile_args : '-DGALLIUM_FREEDRENO',
>    link_with : [libfreedrenowinsys, libfreedreno],
> +  # NIR dependency is also resolved via libgallium
> +  dependencies : idep_nir,
>  )
>  
>  ir3_compiler = executable(
> diff --git a/src/gallium/drivers/radeonsi/meson.build b/src/gallium/drivers/radeonsi/meson.build
> index 9a62d143088..cb5964256bc 100644
> --- a/src/gallium/drivers/radeonsi/meson.build
> +++ b/src/gallium/drivers/radeonsi/meson.build
> @@ -86,5 +86,6 @@ driver_radeonsi = declare_dependency(
>    link_with : [
>      libradeonsi, libradeon, libradeonwinsys, libamdgpuwinsys, libamd_common,
>    ],
> +  # NIR dependency is also resolved via libgallium
>    dependencies : idep_nir,
>  )
> diff --git a/src/gallium/drivers/vc4/meson.build b/src/gallium/drivers/vc4/meson.build
> index ef7e7bcac5c..68f1d7d05e8 100644
> --- a/src/gallium/drivers/vc4/meson.build
> +++ b/src/gallium/drivers/vc4/meson.build
> @@ -116,5 +116,6 @@ libvc4 = static_library(
>  driver_vc4 = declare_dependency(
>    compile_args : '-DGALLIUM_VC4',
>    link_with : [libvc4, libvc4winsys, libbroadcom_cle],
> +  # NIR dependency is also resolved via libgallium
>    dependencies : idep_nir,
>  )
> diff --git a/src/gallium/drivers/vc5/meson.build b/src/gallium/drivers/vc5/meson.build
> index 005bf2f9b8e..3d2b7ad9be9 100644
> --- a/src/gallium/drivers/vc5/meson.build
> +++ b/src/gallium/drivers/vc5/meson.build
> @@ -91,5 +91,6 @@ libvc5 = static_library(
>  driver_vc5 = declare_dependency(
>    compile_args : '-DGALLIUM_VC5',
>    link_with : [libvc5, libvc5winsys, libbroadcom_cle, libbroadcom_vc5],
> +  # NIR dependency is also resolved via libgallium
>    dependencies : idep_nir,
>  )
> -- 
> 2.16.0
> 
> _______________________________________________
> mesa-stable mailing list
> mesa-stable at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-stable

Apart from now needing to be rebased (I fixed the freedreno missing idep_nir
already), this is fine as-is. I've kinda been thinking that having and
idep_gallium would be useful for libgallium, and we could add idep_nir as a
dependency there, which would allow us to actually use idep_nir_headers in the
driver, since all of the gallium targets need libgallium and could pull in the
idep_gallium (and thus idep_nir), this would move more of the linking to the
final shared driver, which should produce a smaller final size without lto,
correct?

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180216/cb42888f/attachment.sig>


More information about the mesa-dev mailing list