1*61046927SAndroid Build Coastguard Worker# Copyright © 2017-2019 Intel Corporation 2*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT 3*61046927SAndroid Build Coastguard Worker 4*61046927SAndroid Build Coastguard Workeranv_hasvk_entrypoints = custom_target( 5*61046927SAndroid Build Coastguard Worker 'anv_hasvk_entrypoints', 6*61046927SAndroid Build Coastguard Worker input : [vk_entrypoints_gen, vk_api_xml], 7*61046927SAndroid Build Coastguard Worker output : ['anv_entrypoints.h', 'anv_entrypoints.c'], 8*61046927SAndroid Build Coastguard Worker command : [ 9*61046927SAndroid Build Coastguard Worker prog_python, '@INPUT0@', '--xml', '@INPUT1@', '--proto', '--weak', 10*61046927SAndroid Build Coastguard Worker '--out-h', '@OUTPUT0@', '--out-c', '@OUTPUT1@', '--prefix', 'anv', 11*61046927SAndroid Build Coastguard Worker '--beta', with_vulkan_beta.to_string(), 12*61046927SAndroid Build Coastguard Worker '--device-prefix', 'gfx7', '--device-prefix', 'gfx75', 13*61046927SAndroid Build Coastguard Worker '--device-prefix', 'gfx8', 14*61046927SAndroid Build Coastguard Worker '--device-prefix', 'doom64', 15*61046927SAndroid Build Coastguard Worker ], 16*61046927SAndroid Build Coastguard Worker depend_files : vk_entrypoints_gen_depend_files, 17*61046927SAndroid Build Coastguard Worker) 18*61046927SAndroid Build Coastguard Worker 19*61046927SAndroid Build Coastguard Workerintel_hasvk_icd = custom_target( 20*61046927SAndroid Build Coastguard Worker 'intel_hasvk_icd', 21*61046927SAndroid Build Coastguard Worker input : [vk_icd_gen, vk_api_xml], 22*61046927SAndroid Build Coastguard Worker output : 'intel_hasvk_icd.@[email protected]'.format(host_machine.cpu()), 23*61046927SAndroid Build Coastguard Worker command : [ 24*61046927SAndroid Build Coastguard Worker prog_python, '@INPUT0@', 25*61046927SAndroid Build Coastguard Worker '--api-version', '1.3', '--xml', '@INPUT1@', 26*61046927SAndroid Build Coastguard Worker '--lib-path', join_paths(get_option('prefix'), get_option('libdir'), 27*61046927SAndroid Build Coastguard Worker 'libvulkan_intel_hasvk.so'), 28*61046927SAndroid Build Coastguard Worker '--out', '@OUTPUT@', 29*61046927SAndroid Build Coastguard Worker ], 30*61046927SAndroid Build Coastguard Worker build_by_default : true, 31*61046927SAndroid Build Coastguard Worker install_dir : with_vulkan_icd_dir, 32*61046927SAndroid Build Coastguard Worker install_tag : 'runtime', 33*61046927SAndroid Build Coastguard Worker install : true, 34*61046927SAndroid Build Coastguard Worker) 35*61046927SAndroid Build Coastguard Worker 36*61046927SAndroid Build Coastguard Worker_dev_icdname = 'intel_hasvk_devenv_icd.@[email protected]'.format(host_machine.cpu()) 37*61046927SAndroid Build Coastguard Worker_dev_icd = custom_target( 38*61046927SAndroid Build Coastguard Worker 'intel_hasvk_devenv_icd', 39*61046927SAndroid Build Coastguard Worker input : [vk_icd_gen, vk_api_xml], 40*61046927SAndroid Build Coastguard Worker output : _dev_icdname, 41*61046927SAndroid Build Coastguard Worker command : [ 42*61046927SAndroid Build Coastguard Worker prog_python, '@INPUT0@', 43*61046927SAndroid Build Coastguard Worker '--api-version', '1.3', '--xml', '@INPUT1@', 44*61046927SAndroid Build Coastguard Worker '--lib-path', meson.current_build_dir() / 'libvulkan_intel_hasvk.so', 45*61046927SAndroid Build Coastguard Worker '--out', '@OUTPUT@', 46*61046927SAndroid Build Coastguard Worker ], 47*61046927SAndroid Build Coastguard Worker build_by_default : true, 48*61046927SAndroid Build Coastguard Worker) 49*61046927SAndroid Build Coastguard Worker 50*61046927SAndroid Build Coastguard Workerdevenv.append('VK_DRIVER_FILES', _dev_icd.full_path()) 51*61046927SAndroid Build Coastguard Worker# Deprecated: replaced by VK_DRIVER_FILES above 52*61046927SAndroid Build Coastguard Workerdevenv.append('VK_ICD_FILENAMES', _dev_icd.full_path()) 53*61046927SAndroid Build Coastguard Worker 54*61046927SAndroid Build Coastguard Workerlibanv_per_hw_ver_libs = [] 55*61046927SAndroid Build Coastguard Workeranv_per_hw_ver_files = files( 56*61046927SAndroid Build Coastguard Worker 'genX_blorp_exec.c', 57*61046927SAndroid Build Coastguard Worker 'genX_cmd_buffer.c', 58*61046927SAndroid Build Coastguard Worker 'genX_gpu_memcpy.c', 59*61046927SAndroid Build Coastguard Worker 'genX_pipeline.c', 60*61046927SAndroid Build Coastguard Worker 'genX_query.c', 61*61046927SAndroid Build Coastguard Worker 'genX_state.c', 62*61046927SAndroid Build Coastguard Worker) 63*61046927SAndroid Build Coastguard Workerforeach g : [['70', ['gfx7_cmd_buffer.c']], 64*61046927SAndroid Build Coastguard Worker ['75', ['gfx7_cmd_buffer.c']], 65*61046927SAndroid Build Coastguard Worker ['80', ['gfx8_cmd_buffer.c']]] 66*61046927SAndroid Build Coastguard Worker _gfx_ver = g[0] 67*61046927SAndroid Build Coastguard Worker libanv_per_hw_ver_libs += static_library( 68*61046927SAndroid Build Coastguard Worker 'anv_per_hw_ver@0@'.format(_gfx_ver), 69*61046927SAndroid Build Coastguard Worker [anv_per_hw_ver_files, g[1], anv_hasvk_entrypoints[0]], 70*61046927SAndroid Build Coastguard Worker include_directories : [ 71*61046927SAndroid Build Coastguard Worker inc_include, inc_src, inc_intel, 72*61046927SAndroid Build Coastguard Worker ], 73*61046927SAndroid Build Coastguard Worker c_args : [ 74*61046927SAndroid Build Coastguard Worker no_override_init_args, sse2_args, 75*61046927SAndroid Build Coastguard Worker '-DGFX_VERx10=@0@'.format(_gfx_ver), 76*61046927SAndroid Build Coastguard Worker ], 77*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 78*61046927SAndroid Build Coastguard Worker dependencies : [ 79*61046927SAndroid Build Coastguard Worker dep_libdrm, dep_valgrind, idep_nir_headers, idep_genxml, 80*61046927SAndroid Build Coastguard Worker idep_vulkan_util_headers, idep_vulkan_wsi_headers, 81*61046927SAndroid Build Coastguard Worker idep_vulkan_runtime_headers, idep_intel_driver_ds_headers, 82*61046927SAndroid Build Coastguard Worker idep_intel_blorp_elk, idep_mesautil, 83*61046927SAndroid Build Coastguard Worker ], 84*61046927SAndroid Build Coastguard Worker ) 85*61046927SAndroid Build Coastguard Workerendforeach 86*61046927SAndroid Build Coastguard Worker 87*61046927SAndroid Build Coastguard Workerlibanv_files = files( 88*61046927SAndroid Build Coastguard Worker 'layers/anv_doom64.c', 89*61046927SAndroid Build Coastguard Worker 'anv_allocator.c', 90*61046927SAndroid Build Coastguard Worker 'anv_android.h', 91*61046927SAndroid Build Coastguard Worker 'anv_batch_chain.c', 92*61046927SAndroid Build Coastguard Worker 'anv_blorp.c', 93*61046927SAndroid Build Coastguard Worker 'anv_bo_sync.c', 94*61046927SAndroid Build Coastguard Worker 'anv_cmd_buffer.c', 95*61046927SAndroid Build Coastguard Worker 'anv_descriptor_set.c', 96*61046927SAndroid Build Coastguard Worker 'anv_device.c', 97*61046927SAndroid Build Coastguard Worker 'anv_formats.c', 98*61046927SAndroid Build Coastguard Worker 'anv_genX.h', 99*61046927SAndroid Build Coastguard Worker 'anv_image.c', 100*61046927SAndroid Build Coastguard Worker 'anv_measure.c', 101*61046927SAndroid Build Coastguard Worker 'anv_measure.h', 102*61046927SAndroid Build Coastguard Worker 'anv_nir.h', 103*61046927SAndroid Build Coastguard Worker 'anv_nir_apply_pipeline_layout.c', 104*61046927SAndroid Build Coastguard Worker 'anv_nir_compute_push_layout.c', 105*61046927SAndroid Build Coastguard Worker 'anv_nir_lower_multiview.c', 106*61046927SAndroid Build Coastguard Worker 'anv_nir_lower_ubo_loads.c', 107*61046927SAndroid Build Coastguard Worker 'anv_nir_lower_ycbcr_textures.c', 108*61046927SAndroid Build Coastguard Worker 'anv_perf.c', 109*61046927SAndroid Build Coastguard Worker 'anv_pipeline.c', 110*61046927SAndroid Build Coastguard Worker 'anv_pipeline_cache.c', 111*61046927SAndroid Build Coastguard Worker 'anv_private.h', 112*61046927SAndroid Build Coastguard Worker 'anv_queue.c', 113*61046927SAndroid Build Coastguard Worker 'anv_util.c', 114*61046927SAndroid Build Coastguard Worker 'anv_utrace.c', 115*61046927SAndroid Build Coastguard Worker 'anv_wsi.c', 116*61046927SAndroid Build Coastguard Worker) 117*61046927SAndroid Build Coastguard Worker 118*61046927SAndroid Build Coastguard Workeranv_deps = [ 119*61046927SAndroid Build Coastguard Worker dep_libdrm, 120*61046927SAndroid Build Coastguard Worker dep_valgrind, 121*61046927SAndroid Build Coastguard Worker idep_genxml, 122*61046927SAndroid Build Coastguard Worker idep_mesautil, 123*61046927SAndroid Build Coastguard Worker idep_nir_headers, 124*61046927SAndroid Build Coastguard Worker idep_vulkan_util_headers, 125*61046927SAndroid Build Coastguard Worker idep_vulkan_runtime_headers, 126*61046927SAndroid Build Coastguard Worker idep_vulkan_wsi_headers, 127*61046927SAndroid Build Coastguard Worker] 128*61046927SAndroid Build Coastguard Workeranv_flags = [ 129*61046927SAndroid Build Coastguard Worker no_override_init_args, 130*61046927SAndroid Build Coastguard Worker sse2_args, 131*61046927SAndroid Build Coastguard Worker] 132*61046927SAndroid Build Coastguard Worker 133*61046927SAndroid Build Coastguard Workeranv_cpp_flags = [] 134*61046927SAndroid Build Coastguard Worker 135*61046927SAndroid Build Coastguard Workerif with_platform_x11 136*61046927SAndroid Build Coastguard Worker anv_deps += dep_xcb_dri3 137*61046927SAndroid Build Coastguard Workerendif 138*61046927SAndroid Build Coastguard Worker 139*61046927SAndroid Build Coastguard Workerif with_platform_wayland 140*61046927SAndroid Build Coastguard Worker anv_deps += dep_wayland_client 141*61046927SAndroid Build Coastguard Workerendif 142*61046927SAndroid Build Coastguard Worker 143*61046927SAndroid Build Coastguard Workerif with_xlib_lease 144*61046927SAndroid Build Coastguard Worker anv_deps += [dep_xlib_xrandr] 145*61046927SAndroid Build Coastguard Workerendif 146*61046927SAndroid Build Coastguard Worker 147*61046927SAndroid Build Coastguard Workerif with_platform_android 148*61046927SAndroid Build Coastguard Worker libanv_files += files('anv_android.c') 149*61046927SAndroid Build Coastguard Workerelse 150*61046927SAndroid Build Coastguard Worker libanv_files += files('anv_android_stubs.c') 151*61046927SAndroid Build Coastguard Workerendif 152*61046927SAndroid Build Coastguard Worker 153*61046927SAndroid Build Coastguard Workeranv_deps += idep_intel_driver_ds_headers 154*61046927SAndroid Build Coastguard Worker 155*61046927SAndroid Build Coastguard Workerlibanv_hasvk_common = static_library( 156*61046927SAndroid Build Coastguard Worker 'anv_hasvk_common', 157*61046927SAndroid Build Coastguard Worker [ 158*61046927SAndroid Build Coastguard Worker libanv_files, anv_hasvk_entrypoints, sha1_h, 159*61046927SAndroid Build Coastguard Worker gen_xml_pack, 160*61046927SAndroid Build Coastguard Worker ], 161*61046927SAndroid Build Coastguard Worker include_directories : [ 162*61046927SAndroid Build Coastguard Worker inc_include, inc_src, inc_intel, 163*61046927SAndroid Build Coastguard Worker inc_util, 164*61046927SAndroid Build Coastguard Worker ], 165*61046927SAndroid Build Coastguard Worker c_args : anv_flags, 166*61046927SAndroid Build Coastguard Worker cpp_args : anv_cpp_flags, 167*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 168*61046927SAndroid Build Coastguard Worker dependencies : anv_deps, 169*61046927SAndroid Build Coastguard Worker) 170*61046927SAndroid Build Coastguard Worker 171*61046927SAndroid Build Coastguard Workerlibvulkan_intel_hasvk = shared_library( 172*61046927SAndroid Build Coastguard Worker 'vulkan_intel_hasvk', 173*61046927SAndroid Build Coastguard Worker [files('anv_gem.c'), anv_hasvk_entrypoints[0]], 174*61046927SAndroid Build Coastguard Worker include_directories : [ 175*61046927SAndroid Build Coastguard Worker inc_include, inc_src, inc_intel, 176*61046927SAndroid Build Coastguard Worker ], 177*61046927SAndroid Build Coastguard Worker link_whole : [libanv_hasvk_common, libanv_per_hw_ver_libs], 178*61046927SAndroid Build Coastguard Worker link_with : [ 179*61046927SAndroid Build Coastguard Worker libisl, libintel_perf, 180*61046927SAndroid Build Coastguard Worker ], 181*61046927SAndroid Build Coastguard Worker dependencies : [ 182*61046927SAndroid Build Coastguard Worker dep_thread, dep_dl, dep_m, anv_deps, idep_libintel_common, 183*61046927SAndroid Build Coastguard Worker idep_nir, idep_genxml, idep_vulkan_util, idep_vulkan_wsi, 184*61046927SAndroid Build Coastguard Worker idep_vulkan_runtime, idep_mesautil, idep_xmlconfig, 185*61046927SAndroid Build Coastguard Worker idep_intel_driver_ds, idep_intel_dev, idep_intel_blorp_elk, 186*61046927SAndroid Build Coastguard Worker idep_intel_decoder_elk, idep_intel_compiler_elk, 187*61046927SAndroid Build Coastguard Worker ], 188*61046927SAndroid Build Coastguard Worker c_args : anv_flags, 189*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 190*61046927SAndroid Build Coastguard Worker link_args : [vulkan_icd_link_args, ld_args_build_id, 191*61046927SAndroid Build Coastguard Worker ld_args_bsymbolic, ld_args_gc_sections], 192*61046927SAndroid Build Coastguard Worker link_depends : vulkan_icd_link_depends, 193*61046927SAndroid Build Coastguard Worker install : true, 194*61046927SAndroid Build Coastguard Worker) 195*61046927SAndroid Build Coastguard Worker 196*61046927SAndroid Build Coastguard Workerif with_symbols_check 197*61046927SAndroid Build Coastguard Worker test( 198*61046927SAndroid Build Coastguard Worker 'anv symbols check', 199*61046927SAndroid Build Coastguard Worker symbols_check, 200*61046927SAndroid Build Coastguard Worker args : [ 201*61046927SAndroid Build Coastguard Worker '--lib', libvulkan_intel_hasvk, 202*61046927SAndroid Build Coastguard Worker '--symbols-file', vulkan_icd_symbols, 203*61046927SAndroid Build Coastguard Worker symbols_check_args, 204*61046927SAndroid Build Coastguard Worker ], 205*61046927SAndroid Build Coastguard Worker suite : ['intel'], 206*61046927SAndroid Build Coastguard Worker ) 207*61046927SAndroid Build Coastguard Workerendif 208*61046927SAndroid Build Coastguard Worker 209*61046927SAndroid Build Coastguard Workerif with_tests 210*61046927SAndroid Build Coastguard Worker libvulkan_intel_hasvk_test = static_library( 211*61046927SAndroid Build Coastguard Worker 'vulkan_intel_hasvk_test', 212*61046927SAndroid Build Coastguard Worker [files('anv_gem_stubs.c'), anv_hasvk_entrypoints[0]], 213*61046927SAndroid Build Coastguard Worker include_directories : [ 214*61046927SAndroid Build Coastguard Worker inc_include, inc_src, inc_intel, 215*61046927SAndroid Build Coastguard Worker ], 216*61046927SAndroid Build Coastguard Worker link_whole : libanv_hasvk_common, 217*61046927SAndroid Build Coastguard Worker link_with : [ 218*61046927SAndroid Build Coastguard Worker libanv_per_hw_ver_libs, libintel_common, 219*61046927SAndroid Build Coastguard Worker libisl, libintel_perf, 220*61046927SAndroid Build Coastguard Worker ], 221*61046927SAndroid Build Coastguard Worker dependencies : [ 222*61046927SAndroid Build Coastguard Worker dep_thread, dep_dl, dep_m, anv_deps, 223*61046927SAndroid Build Coastguard Worker idep_nir, idep_vulkan_util, idep_vulkan_wsi, idep_vulkan_runtime, 224*61046927SAndroid Build Coastguard Worker idep_mesautil, idep_intel_dev, idep_intel_blorp_elk, 225*61046927SAndroid Build Coastguard Worker idep_intel_decoder_elk, idep_intel_compiler_elk, 226*61046927SAndroid Build Coastguard Worker ], 227*61046927SAndroid Build Coastguard Worker c_args : anv_flags, 228*61046927SAndroid Build Coastguard Worker gnu_symbol_visibility : 'hidden', 229*61046927SAndroid Build Coastguard Worker ) 230*61046927SAndroid Build Coastguard Worker 231*61046927SAndroid Build Coastguard Worker files_hasvk_tests = files( 232*61046927SAndroid Build Coastguard Worker 'tests/hasvk_tests.cpp', 233*61046927SAndroid Build Coastguard Worker 234*61046927SAndroid Build Coastguard Worker 'tests/state_pool.c', 235*61046927SAndroid Build Coastguard Worker 'tests/state_pool_free_list_only.c', 236*61046927SAndroid Build Coastguard Worker 'tests/state_pool_no_free.c', 237*61046927SAndroid Build Coastguard Worker 'tests/state_pool_padding.c', 238*61046927SAndroid Build Coastguard Worker 'tests/block_pool_no_free.c', 239*61046927SAndroid Build Coastguard Worker 'tests/block_pool_grow_first.c', 240*61046927SAndroid Build Coastguard Worker ) 241*61046927SAndroid Build Coastguard Worker 242*61046927SAndroid Build Coastguard Worker test( 243*61046927SAndroid Build Coastguard Worker 'hasvk_tests', 244*61046927SAndroid Build Coastguard Worker executable( 245*61046927SAndroid Build Coastguard Worker 'hasvk_tests', 246*61046927SAndroid Build Coastguard Worker [files_hasvk_tests, anv_hasvk_entrypoints[0]], 247*61046927SAndroid Build Coastguard Worker c_args : [ sse2_args ], 248*61046927SAndroid Build Coastguard Worker link_with : libvulkan_intel_hasvk_test, 249*61046927SAndroid Build Coastguard Worker dependencies : [ 250*61046927SAndroid Build Coastguard Worker idep_gtest, dep_libdrm, dep_thread, dep_m, dep_valgrind, 251*61046927SAndroid Build Coastguard Worker idep_vulkan_util, idep_vulkan_wsi_headers, 252*61046927SAndroid Build Coastguard Worker idep_vulkan_runtime, idep_intel_driver_ds, idep_intel_dev, 253*61046927SAndroid Build Coastguard Worker ], 254*61046927SAndroid Build Coastguard Worker include_directories : [ 255*61046927SAndroid Build Coastguard Worker inc_include, inc_src, inc_intel, 256*61046927SAndroid Build Coastguard Worker ], 257*61046927SAndroid Build Coastguard Worker ), 258*61046927SAndroid Build Coastguard Worker suite : ['intel'], 259*61046927SAndroid Build Coastguard Worker protocol : 'gtest', 260*61046927SAndroid Build Coastguard Worker ) 261*61046927SAndroid Build Coastguard Workerendif 262