1# Copyright © 2017 Intel Corporation 2 3# Permission is hereby granted, free of charge, to any person obtaining a copy 4# of this software and associated documentation files (the "Software"), to deal 5# in the Software without restriction, including without limitation the rights 6# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7# copies of the Software, and to permit persons to whom the Software is 8# furnished to do so, subject to the following conditions: 9 10# The above copyright notice and this permission notice shall be included in 11# all copies or substantial portions of the Software. 12 13# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19# SOFTWARE. 20 21amd_json_files = [ 22 # Generated: 23 '../registers/gfx6.json', 24 '../registers/gfx7.json', 25 '../registers/gfx8.json', 26 '../registers/gfx81.json', 27 '../registers/gfx9.json', 28 '../registers/gfx10.json', 29 '../registers/gfx103.json', 30 31 # Manually written: 32 '../registers/pkt3.json', 33 '../registers/gfx10-rsrc.json', 34 '../registers/registers-manually-defined.json', 35] 36 37sid_tables_h = custom_target( 38 'sid_tables_h', 39 input : ['sid_tables.py', 'sid.h'] + amd_json_files, 40 output : 'sid_tables.h', 41 command : [prog_python, '@INPUT@'], 42 capture : true, 43) 44 45amdgfxregs_h = custom_target( 46 'amdgfxregs_h', 47 input : ['../registers/makeregheader.py'] + amd_json_files, 48 output : 'amdgfxregs.h', 49 command : [prog_python, '@INPUT@', '--sort', 'address', '--guard', 'AMDGFXREGS_H'], 50 capture : true, 51) 52 53gfx10_format_table_c = custom_target( 54 'gfx10_format_table.c', 55 input : files( 56 'gfx10_format_table.py', 57 '../../util/format/u_format.csv', '../registers/gfx10-rsrc.json' 58 ), 59 output : 'gfx10_format_table.c', 60 command : [prog_python, '@INPUT@'], 61 capture : true, 62 depend_files : ['../registers/regdb.py'] 63) 64 65amd_common_files = files( 66 'ac_binary.c', 67 'ac_binary.h', 68 'ac_exp_param.h', 69 'ac_shader_args.c', 70 'ac_shader_args.h', 71 'ac_shader_util.c', 72 'ac_shader_util.h', 73 'ac_gpu_info.c', 74 'ac_gpu_info.h', 75 'ac_rtld.c', 76 'ac_rtld.h', 77 'ac_surface.c', 78 'ac_surface.h', 79 'ac_debug.c', 80 'ac_debug.h', 81 'ac_shadowed_regs.c', 82 'ac_shadowed_regs.h', 83 'ac_sqtt.c', 84 'ac_sqtt.h', 85 'ac_rgp.c', 86 'ac_rgp.h', 87 'ac_msgpack.c', 88 'ac_msgpack.h', 89 'ac_rgp_elf_object_pack.c', 90 'ac_nir.c', 91 'ac_nir.h', 92 'ac_nir_cull.c', 93 'ac_nir_lower_esgs_io_to_mem.c', 94 'ac_nir_lower_tess_io_to_mem.c', 95 'ac_nir_lower_ngg.c', 96 'amd_family.c', 97 'ac_perfcounter.c', 98 'ac_perfcounter.h', 99) 100 101libamd_common = static_library( 102 'amd_common', 103 [amd_common_files, sid_tables_h, amdgfxregs_h, gfx10_format_table_c], 104 include_directories : [ 105 inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_compiler, inc_mapi, inc_amd, 106 ], 107 dependencies : [ 108 dep_thread, dep_elf, dep_libdrm_amdgpu, dep_valgrind, 109 idep_mesautil, idep_nir_headers, idep_nir 110 ], 111 gnu_symbol_visibility : 'hidden', 112) 113 114idep_amdgfxregs_h = declare_dependency(sources : [amdgfxregs_h]) 115 116 117if with_tests and not with_platform_windows 118 test( 119 'ac_surface_modifier_test', 120 executable( 121 'ac_surface_modifier_test', 122 ['ac_surface_modifier_test.c'], 123 link_with: [libamd_common, libamdgpu_addrlib], 124 include_directories : [ 125 inc_amd, inc_gallium, inc_include, inc_src, 126 ], 127 dependencies: [idep_amdgfxregs_h, dep_libdrm_amdgpu, idep_mesautil], 128 ), 129 suite: ['amd'] 130 ) 131 132 # Limit this to only a few architectures for the Gitlab CI. 133 if ['x86', 'x86_64', 'aarch64'].contains(host_machine.cpu_family()) 134 test( 135 'ac_surface_meta_address_test', 136 executable( 137 'ac_surface_meta_address_test', 138 ['ac_surface_meta_address_test.c'], 139 link_with: [libamd_common, libamdgpu_addrlib], 140 include_directories : [ 141 inc_amd, inc_gallium, inc_include, inc_src, 142 ], 143 dependencies: [idep_amdgfxregs_h, dep_libdrm_amdgpu, idep_mesautil, dep_openmp], 144 ), 145 suite: ['amd'] 146 ) 147 endif 148endif 149