1bf215546Sopenharmony_ci# Copyright © 2017 Intel Corporation 2bf215546Sopenharmony_ci# SPDX-License-Identifier: MIT 3bf215546Sopenharmony_ci 4bf215546Sopenharmony_citu_entrypoints = custom_target( 5bf215546Sopenharmony_ci 'tu_entrypoints', 6bf215546Sopenharmony_ci input : [vk_entrypoints_gen, vk_api_xml], 7bf215546Sopenharmony_ci output : ['tu_entrypoints.h', 'tu_entrypoints.c'], 8bf215546Sopenharmony_ci command : [ 9bf215546Sopenharmony_ci prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak', 10bf215546Sopenharmony_ci '--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'tu', 11bf215546Sopenharmony_ci ], 12bf215546Sopenharmony_ci depend_files : vk_entrypoints_gen_depend_files, 13bf215546Sopenharmony_ci) 14bf215546Sopenharmony_ci 15bf215546Sopenharmony_ci 16bf215546Sopenharmony_cilibtu_files = files( 17bf215546Sopenharmony_ci 'tu_autotune.c', 18bf215546Sopenharmony_ci 'tu_clear_blit.c', 19bf215546Sopenharmony_ci 'tu_cmd_buffer.c', 20bf215546Sopenharmony_ci 'tu_cs_breadcrumbs.c', 21bf215546Sopenharmony_ci 'tu_cs.c', 22bf215546Sopenharmony_ci 'tu_device.c', 23bf215546Sopenharmony_ci 'tu_descriptor_set.c', 24bf215546Sopenharmony_ci 'tu_dynamic_rendering.c', 25bf215546Sopenharmony_ci 'tu_formats.c', 26bf215546Sopenharmony_ci 'tu_image.c', 27bf215546Sopenharmony_ci 'tu_lrz.c', 28bf215546Sopenharmony_ci 'tu_nir_lower_multiview.c', 29bf215546Sopenharmony_ci 'tu_pass.c', 30bf215546Sopenharmony_ci 'tu_pipeline.c', 31bf215546Sopenharmony_ci 'tu_query.c', 32bf215546Sopenharmony_ci 'tu_shader.c', 33bf215546Sopenharmony_ci 'tu_suballoc.c', 34bf215546Sopenharmony_ci 'tu_util.c', 35bf215546Sopenharmony_ci) 36bf215546Sopenharmony_ci 37bf215546Sopenharmony_citu_deps = [] 38bf215546Sopenharmony_citu_flags = [] 39bf215546Sopenharmony_ci 40bf215546Sopenharmony_citu_wsi = false 41bf215546Sopenharmony_ci 42bf215546Sopenharmony_ciif with_platform_x11 43bf215546Sopenharmony_ci tu_deps += dep_xcb_dri3 44bf215546Sopenharmony_ci tu_wsi = true 45bf215546Sopenharmony_ciendif 46bf215546Sopenharmony_ci 47bf215546Sopenharmony_ciif with_platform_wayland 48bf215546Sopenharmony_ci tu_deps += dep_wayland_client 49bf215546Sopenharmony_ci tu_wsi = true 50bf215546Sopenharmony_ciendif 51bf215546Sopenharmony_ci 52bf215546Sopenharmony_ciif system_has_kms_drm and not with_platform_android 53bf215546Sopenharmony_ci tu_wsi = true 54bf215546Sopenharmony_ciendif 55bf215546Sopenharmony_ci 56bf215546Sopenharmony_ciif tu_wsi 57bf215546Sopenharmony_ci libtu_files += 'tu_wsi.c' 58bf215546Sopenharmony_ciendif 59bf215546Sopenharmony_ci 60bf215546Sopenharmony_ciif with_platform_android 61bf215546Sopenharmony_ci libtu_files += files('tu_android.c') 62bf215546Sopenharmony_ci tu_deps += [dep_android] 63bf215546Sopenharmony_ciendif 64bf215546Sopenharmony_ci 65bf215546Sopenharmony_ciif with_xlib_lease 66bf215546Sopenharmony_ci tu_deps += [dep_xlib_xrandr] 67bf215546Sopenharmony_ciendif 68bf215546Sopenharmony_ci 69bf215546Sopenharmony_ciif with_freedreno_kgsl 70bf215546Sopenharmony_ci tu_flags += '-DTU_USE_KGSL' 71bf215546Sopenharmony_ci # Even if libdrm is available we shouldn't use it in KGSL build 72bf215546Sopenharmony_ci tu_flags += '-UHAVE_LIBDRM' 73bf215546Sopenharmony_ci libtu_files += files('tu_kgsl.c') 74bf215546Sopenharmony_cielse 75bf215546Sopenharmony_ci libtu_files += files('tu_drm.c') 76bf215546Sopenharmony_ci tu_deps += dep_libdrm 77bf215546Sopenharmony_ciendif 78bf215546Sopenharmony_ci 79bf215546Sopenharmony_citu_tracepoints = custom_target( 80bf215546Sopenharmony_ci 'tu_tracepoints.[ch]', 81bf215546Sopenharmony_ci input: 'tu_tracepoints.py', 82bf215546Sopenharmony_ci output: ['tu_tracepoints.c', 'tu_tracepoints.h', 'tu_tracepoints_perfetto.h'], 83bf215546Sopenharmony_ci command: [ 84bf215546Sopenharmony_ci prog_python, '@INPUT@', 85bf215546Sopenharmony_ci '-p', join_paths(meson.source_root(), 'src/util/perf/'), 86bf215546Sopenharmony_ci '--utrace-src', '@OUTPUT0@', 87bf215546Sopenharmony_ci '--utrace-hdr', '@OUTPUT1@', 88bf215546Sopenharmony_ci '--perfetto-hdr', '@OUTPUT2@', 89bf215546Sopenharmony_ci ], 90bf215546Sopenharmony_ci depend_files: u_trace_py, 91bf215546Sopenharmony_ci) 92bf215546Sopenharmony_ci 93bf215546Sopenharmony_ciif with_perfetto 94bf215546Sopenharmony_ci libtu_files += ['tu_perfetto.cc', 'tu_perfetto_util.c'] 95bf215546Sopenharmony_ci tu_deps += dep_perfetto 96bf215546Sopenharmony_ciendif 97bf215546Sopenharmony_ci 98bf215546Sopenharmony_cilibvulkan_freedreno = shared_library( 99bf215546Sopenharmony_ci 'vulkan_freedreno', 100bf215546Sopenharmony_ci [libtu_files, tu_entrypoints, tu_tracepoints, freedreno_xml_header_files, sha1_h, u_format_pack_h], 101bf215546Sopenharmony_ci include_directories : [ 102bf215546Sopenharmony_ci inc_include, 103bf215546Sopenharmony_ci inc_src, 104bf215546Sopenharmony_ci inc_mapi, 105bf215546Sopenharmony_ci inc_mesa, 106bf215546Sopenharmony_ci inc_gallium, 107bf215546Sopenharmony_ci inc_gallium_aux, 108bf215546Sopenharmony_ci inc_compiler, 109bf215546Sopenharmony_ci inc_freedreno, 110bf215546Sopenharmony_ci ], 111bf215546Sopenharmony_ci link_with : [ 112bf215546Sopenharmony_ci libfreedreno_ir3, 113bf215546Sopenharmony_ci libfreedreno_layout, 114bf215546Sopenharmony_ci libfreedreno_perfcntrs, 115bf215546Sopenharmony_ci ], 116bf215546Sopenharmony_ci dependencies : [ 117bf215546Sopenharmony_ci idep_libfreedreno_common, 118bf215546Sopenharmony_ci dep_dl, 119bf215546Sopenharmony_ci dep_elf, 120bf215546Sopenharmony_ci dep_m, 121bf215546Sopenharmony_ci dep_thread, 122bf215546Sopenharmony_ci dep_valgrind, 123bf215546Sopenharmony_ci idep_nir, 124bf215546Sopenharmony_ci tu_deps, 125bf215546Sopenharmony_ci idep_vulkan_util, 126bf215546Sopenharmony_ci idep_vulkan_runtime, 127bf215546Sopenharmony_ci idep_vulkan_wsi, 128bf215546Sopenharmony_ci idep_mesautil, 129bf215546Sopenharmony_ci ], 130bf215546Sopenharmony_ci c_args : [no_override_init_args, tu_flags], 131bf215546Sopenharmony_ci gnu_symbol_visibility : 'hidden', 132bf215546Sopenharmony_ci link_args : [ld_args_bsymbolic, ld_args_gc_sections, ld_args_build_id], 133bf215546Sopenharmony_ci install : true, 134bf215546Sopenharmony_ci) 135bf215546Sopenharmony_ci 136bf215546Sopenharmony_ciif with_symbols_check 137bf215546Sopenharmony_ci test( 138bf215546Sopenharmony_ci 'tu symbols check', 139bf215546Sopenharmony_ci symbols_check, 140bf215546Sopenharmony_ci args : [ 141bf215546Sopenharmony_ci '--lib', libvulkan_freedreno, 142bf215546Sopenharmony_ci '--symbols-file', vulkan_icd_symbols, 143bf215546Sopenharmony_ci symbols_check_args, 144bf215546Sopenharmony_ci ], 145bf215546Sopenharmony_ci suite : ['freedreno'], 146bf215546Sopenharmony_ci ) 147bf215546Sopenharmony_ciendif 148bf215546Sopenharmony_ci 149bf215546Sopenharmony_cifreedreno_icd = custom_target( 150bf215546Sopenharmony_ci 'freedreno_icd', 151bf215546Sopenharmony_ci input : [vk_icd_gen, vk_api_xml], 152bf215546Sopenharmony_ci output : 'freedreno_icd.@0@.json'.format(host_machine.cpu()), 153bf215546Sopenharmony_ci command : [ 154bf215546Sopenharmony_ci prog_python, '@INPUT0@', 155bf215546Sopenharmony_ci '--api-version', '1.1', '--xml', '@INPUT1@', 156bf215546Sopenharmony_ci '--lib-path', join_paths(get_option('prefix'), get_option('libdir'), 157bf215546Sopenharmony_ci 'libvulkan_freedreno.so'), 158bf215546Sopenharmony_ci '--out', '@OUTPUT@', 159bf215546Sopenharmony_ci ], 160bf215546Sopenharmony_ci build_by_default : true, 161bf215546Sopenharmony_ci install_dir : with_vulkan_icd_dir, 162bf215546Sopenharmony_ci install : true, 163bf215546Sopenharmony_ci) 164bf215546Sopenharmony_ci 165bf215546Sopenharmony_ciif meson.version().version_compare('>= 0.58') 166bf215546Sopenharmony_ci _dev_icdname = 'freedreno_devenv_icd.@0@.json'.format(host_machine.cpu()) 167bf215546Sopenharmony_ci custom_target( 168bf215546Sopenharmony_ci 'freedreno_devenv_icd', 169bf215546Sopenharmony_ci input : [vk_icd_gen, vk_api_xml], 170bf215546Sopenharmony_ci output : _dev_icdname, 171bf215546Sopenharmony_ci command : [ 172bf215546Sopenharmony_ci prog_python, '@INPUT0@', 173bf215546Sopenharmony_ci '--api-version', '1.1', '--xml', '@INPUT1@', 174bf215546Sopenharmony_ci '--lib-path', meson.current_build_dir() / 'libvulkan_freedreno.so', 175bf215546Sopenharmony_ci '--out', '@OUTPUT@', 176bf215546Sopenharmony_ci ], 177bf215546Sopenharmony_ci build_by_default : true, 178bf215546Sopenharmony_ci ) 179bf215546Sopenharmony_ci 180bf215546Sopenharmony_ci devenv.append('VK_ICD_FILENAMES', meson.current_build_dir() / _dev_icdname) 181bf215546Sopenharmony_ciendif 182