From 2ee6b4d96e02d5bb63276bc5a2f8bfa60423b785 Mon Sep 17 00:00:00 2001 From: Andy Hsu Date: Fri, 21 Nov 2025 06:13:33 +0000 Subject: [PATCH] intel/decoder: make libvulkan_intel to depend on stub decoder when buildtyle=release. The libvulkan_intel does not need the decoder when buildtype=release where the debugging is disabled. However, the decoder implementation is decided by the dep_expat which may be turned on by like -Dtools=intel and the binary size of libvulkan_intel increase unexpectedly. This change creates the stub dependency and decide the exact decoder dependency of libvulkan_intel by the buildtype. Test: meson setup builddir -D build-tests=true -Dbuildtype=release --reconfigure && ninja -C builddir && cd builddir && meson test Reviewed-by: Lionel Landwerlin Signed-off-by: Andy Hsu Part-of: --- src/intel/decoder/meson.build | 80 ++++++++++++++++++++++++----------- src/intel/vulkan/meson.build | 7 ++- 2 files changed, 61 insertions(+), 26 deletions(-) diff --git a/src/intel/decoder/meson.build b/src/intel/decoder/meson.build index 0753201155a..fedb69d87ee 100644 --- a/src/intel/decoder/meson.build +++ b/src/intel/decoder/meson.build @@ -1,26 +1,41 @@ # Copyright © 2017 Intel Corporation # SPDX-License-Identifier: MIT -libintel_decoder_files = files( - 'intel_decoder.h', - ) +libintel_decoder_common_args = { + 'include_directories' : [inc_include, inc_src, inc_intel], + 'c_args' : [no_override_init_args, sse2_args], + 'gnu_symbol_visibility' : 'hidden', + 'build_by_default' : false, +} -libintel_decoder_deps = [ +libintel_decoder_stub_files = files( + 'intel_decoder.h', + 'intel_batch_decoder_stub.c', +) + +libintel_decoder_impl_files = files ( + 'intel_decoder.h', + 'intel_decoder.c', + 'intel_batch_decoder.c', +) + +libintel_decoder_stub_deps = [ idep_intel_dev ] +libintel_decoder_impl_deps = [ + idep_intel_dev, + dep_expat +] + if not dep_expat.found() - libintel_decoder_files += files( - 'intel_batch_decoder_stub.c', - ) + libintel_decoder_deps = libintel_decoder_stub_deps + libintel_decoder_files = libintel_decoder_stub_files libintel_decoder_brw_files = files() libintel_decoder_elk_files = files() else - libintel_decoder_deps += dep_expat - libintel_decoder_files += files( - 'intel_decoder.c', - 'intel_batch_decoder.c', - ) + libintel_decoder_deps = libintel_decoder_impl_deps + libintel_decoder_files = libintel_decoder_impl_files libintel_decoder_brw_files = files('intel_batch_decoder_brw.c') libintel_decoder_elk_files = files('intel_batch_decoder_elk.c') endif @@ -28,11 +43,8 @@ endif libintel_decoder = static_library( 'intel_decoder', [libintel_decoder_files, genX_xml_h, sha1_h], - include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args, sse2_args], - gnu_symbol_visibility : 'hidden', dependencies : libintel_decoder_deps, - build_by_default : false, + kwargs : libintel_decoder_common_args ) idep_intel_decoder = declare_dependency( @@ -43,11 +55,8 @@ idep_intel_decoder = declare_dependency( libintel_decoder_brw = static_library( 'intel_decoder_brw', [libintel_decoder_brw_files, genX_xml_h, sha1_h], - include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args, sse2_args], - gnu_symbol_visibility : 'hidden', dependencies : idep_intel_decoder, - build_by_default : false, + kwargs : libintel_decoder_common_args ) idep_intel_decoder_brw = declare_dependency( @@ -59,11 +68,8 @@ if with_intel_elk libintel_decoder_elk = static_library( 'intel_decoder_elk', [libintel_decoder_elk_files, genX_xml_h, sha1_h], - include_directories : [inc_include, inc_src, inc_intel], - c_args : [no_override_init_args, sse2_args], - gnu_symbol_visibility : 'hidden', dependencies : idep_intel_decoder, - build_by_default : false, + kwargs : libintel_decoder_common_args ) idep_intel_decoder_elk = declare_dependency( @@ -74,6 +80,32 @@ else idep_intel_decoder_elk = null_dep endif +# Stub decoder. +libintel_decoder_stub = static_library( + 'intel_decoder_stub', + [libintel_decoder_stub_files, genX_xml_h, sha1_h], + dependencies : libintel_decoder_stub_deps, + kwargs : libintel_decoder_common_args +) + +idep_intel_decoder_stub = declare_dependency( + link_with : [libintel_decoder_stub], + dependencies : libintel_decoder_stub_deps, +) + +libintel_decoder_stub_brw = static_library( + 'intel_decoder_stub_brw', + [genX_xml_h, sha1_h], + dependencies : idep_intel_decoder_stub, + kwargs : libintel_decoder_common_args +) + +idep_intel_decoder_stub_brw = declare_dependency( + link_with : [libintel_decoder_stub_brw], + dependencies : idep_intel_decoder_stub, +) + +# Test. if with_tests and not with_platform_android gentest_xml = 'tests/gentest.xml' _name = 'gentest_pack.h' diff --git a/src/intel/vulkan/meson.build b/src/intel/vulkan/meson.build index e92d256db2a..907b0c4e7f1 100644 --- a/src/intel/vulkan/meson.build +++ b/src/intel/vulkan/meson.build @@ -253,6 +253,9 @@ libanv_common = static_library( dependencies : anv_deps ) +idep_libvulkan_intel_decoder = (with_mesa_ndebug ? + idep_intel_decoder_stub_brw : idep_intel_decoder_brw) + libvulkan_intel = shared_library( 'vulkan_intel', [files('anv_gem.c'), anv_entrypoints[0], bvh_spv], @@ -268,7 +271,7 @@ libvulkan_intel = shared_library( idep_nir, idep_genxml, idep_vulkan_util, idep_vulkan_wsi, idep_vulkan_runtime, idep_mesautil, idep_xmlconfig, idep_intel_driver_ds, idep_intel_dev, idep_intel_blorp, - idep_intel_compiler_brw, idep_intel_decoder_brw, + idep_intel_compiler_brw, idep_libvulkan_intel_decoder ], c_args : anv_flags, gnu_symbol_visibility : 'hidden', @@ -306,7 +309,7 @@ if with_tests dep_thread, dep_dl, dep_m, anv_deps, idep_nir, idep_vulkan_util, idep_vulkan_wsi, idep_vulkan_runtime, idep_mesautil, idep_intel_dev, idep_intel_blorp, - idep_intel_compiler_brw, idep_intel_decoder_brw, + idep_intel_compiler_brw, idep_libvulkan_intel_decoder, ], c_args : anv_flags, gnu_symbol_visibility : 'hidden',