radv,aco: report ACO errors/warnings back via VK_EXT_debug_report
[mesa.git] / src / amd / vulkan / meson.build
index 3d7ad9f55a1050d9403e5663d2d994c98bbeda94..d1557799671194ee413e3a37249fa6050528820c 100644 (file)
@@ -49,6 +49,7 @@ amd_vk_format_table_c = custom_target(
 )
 
 libradv_files = files(
+  'layers/radv_sqtt_layer.c',
   'winsys/amdgpu/radv_amdgpu_bo.c',
   'winsys/amdgpu/radv_amdgpu_bo.h',
   'winsys/amdgpu/radv_amdgpu_cs.c',
@@ -58,6 +59,13 @@ libradv_files = files(
   'winsys/amdgpu/radv_amdgpu_winsys.c',
   'winsys/amdgpu/radv_amdgpu_winsys.h',
   'winsys/amdgpu/radv_amdgpu_winsys_public.h',
+  'winsys/null/radv_null_bo.c',
+  'winsys/null/radv_null_bo.h',
+  'winsys/null/radv_null_cs.c',
+  'winsys/null/radv_null_cs.h',
+  'winsys/null/radv_null_winsys.c',
+  'winsys/null/radv_null_winsys_public.h',
+  'radv_android.c',
   'radv_cmd_buffer.c',
   'radv_cs.h',
   'radv_debug.c',
@@ -82,16 +90,21 @@ libradv_files = files(
   'radv_meta_resolve.c',
   'radv_meta_resolve_cs.c',
   'radv_meta_resolve_fs.c',
+  'radv_nir_lower_ycbcr_textures.c',
   'radv_nir_to_llvm.c',
   'radv_pass.c',
   'radv_pipeline.c',
   'radv_pipeline_cache.c',
   'radv_private.h',
   'radv_radeon_winsys.h',
+  'radv_rgp.c',
   'radv_shader.c',
   'radv_shader.h',
+  'radv_shader_args.c',
+  'radv_shader_args.h',
   'radv_shader_helper.h',
   'radv_shader_info.c',
+  'radv_sqtt.c',
   'radv_query.c',
   'radv_util.c',
   'radv_util.h',
@@ -118,7 +131,7 @@ if with_platform_wayland
   libradv_files += files('radv_wsi_wayland.c')
 endif
 
-if with_platform_drm
+if system_has_kms_drm and not with_platform_android
   radv_flags += '-DVK_USE_PLATFORM_DISPLAY_KHR'
   libradv_files += files('radv_wsi_display.c')
 endif
@@ -128,28 +141,61 @@ if with_xlib_lease
   radv_flags += '-DVK_USE_PLATFORM_XLIB_XRANDR_EXT'
 endif
 
+if with_platform_android
+  radv_deps += dep_android
+  radv_flags += [
+    '-DVK_USE_PLATFORM_ANDROID_KHR'
+  ]
+endif
+
+# When static linking LLVM, all its symbols are public API.
+# That may cause symbol collision, so explicitly demote everything.
+libvulkan_radeon_ld_args = []
+libvulkan_radeon_link_depends = []
+
+if with_llvm and with_ld_version_script
+  libvulkan_radeon_ld_args += ['-Wl,--version-script', join_paths(meson.current_source_dir(), 'vulkan.sym')]
+  libvulkan_radeon_link_depends += files('vulkan.sym')
+endif
+
 libvulkan_radeon = shared_library(
   'vulkan_radeon',
-  [libradv_files, radv_entrypoints, radv_extensions_c, amd_vk_format_table_c, sha1_h, xmlpool_options_h],
+  [libradv_files, radv_entrypoints, radv_extensions_c, amd_vk_format_table_c, sha1_h],
   include_directories : [
-    inc_common, inc_amd, inc_amd_common, inc_compiler, inc_util, inc_vulkan_util,
-    inc_vulkan_wsi,
+    inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_amd, inc_amd_common, inc_amd_common_llvm, inc_compiler, inc_util, inc_vulkan_wsi,
   ],
   link_with : [
-    libamd_common, libamdgpu_addrlib, libvulkan_util, libvulkan_wsi,
-    libmesa_util, libxmlconfig
+    libamd_common, libamd_common_llvm, libamdgpu_addrlib, libvulkan_wsi,
   ],
   dependencies : [
     dep_llvm, dep_libdrm_amdgpu, dep_thread, dep_elf, dep_dl, dep_m,
-    dep_valgrind, radv_deps,
-    idep_nir,
+    dep_valgrind, radv_deps, idep_aco,
+    idep_mesautil, idep_nir, idep_vulkan_util, idep_amdgfxregs_h, idep_xmlconfig,
   ],
-  c_args : [c_vis_args, no_override_init_args, radv_flags],
-  cpp_args : [cpp_vis_args, radv_flags],
-  link_args : [ld_args_bsymbolic, ld_args_gc_sections],
+  c_args : [no_override_init_args, radv_flags],
+  cpp_args : [radv_flags],
+  link_args : [
+    ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections, libvulkan_radeon_ld_args,
+  ],
+  link_depends : [libvulkan_radeon_link_depends,],
+  gnu_symbol_visibility : 'hidden',
   install : true,
 )
 
+if with_symbols_check
+  test(
+    'radv symbols check',
+    symbols_check,
+    args : [
+      '--lib', libvulkan_radeon,
+      '--symbols-file', vulkan_icd_symbols,
+      '--ignore-symbol', 'ac_init_shared_llvm_once',
+      symbols_check_args,
+    ],
+    suite : ['amd'],
+  )
+endif
+
 radeon_icd = custom_target(
   'radeon_icd',
   input : 'radv_icd.py',
@@ -164,16 +210,3 @@ radeon_icd = custom_target(
   install_dir : with_vulkan_icd_dir,
   install : true,
 )
-
-radv_dev_icd = custom_target(
-  'radv_dev_icd',
-  input : 'radv_icd.py',
-  output : 'dev_icd.json',
-  command : [
-    prog_python, '@INPUT@', '--lib-path', meson.current_build_dir(),
-    '--out', '@OUTPUT@'
-  ],
-  depend_files : files('radv_extensions.py'),
-  build_by_default : true,
-  install : false,
-)