1# Copyright © 2017 Intel Corporation 2# SPDX-License-Identifier: MIT 3 4isl_per_hw_ver_files = files( 5 'isl_emit_cpb.c', 6 'isl_emit_depth_stencil.c', 7 'isl_surface_state.c', 8 'isl_genX_helpers.h', 9) 10 11isl_gfx4_files = files( 12 'isl_gfx4.c', 13 'isl_gfx4.h', 14) 15 16isl_gfx6_files = files( 17 'isl_gfx6.c', 18 'isl_gfx6.h', 19) 20 21isl_gfx7_files = files( 22 'isl_gfx7.c', 23 'isl_gfx7.h', 24) 25 26isl_gfx8_files = files( 27 'isl_gfx8.c', 28 'isl_gfx8.h', 29) 30 31isl_gfx9_files = files( 32 'isl_gfx9.c', 33 'isl_gfx9.h', 34) 35 36isl_gfx12_files = files( 37 'isl_gfx12.c', 38 'isl_gfx12.h', 39) 40 41isl_gfx125_files = files( 42 'isl_gfx12.c', 43 'isl_gfx12.h', 44) 45 46isl_gfx20_files = files( 47 'isl_gfx20.c', 48 'isl_gfx20.h', 49) 50 51isl_per_hw_ver_libs = [] 52foreach g : [['40', isl_gfx4_files], ['50', []], ['60', isl_gfx6_files], 53 ['70', isl_gfx7_files], ['75', []], ['80', isl_gfx8_files], 54 ['90', isl_gfx9_files], ['110', []], ['120', isl_gfx12_files], 55 ['125', isl_gfx12_files], ['200', isl_gfx20_files], 56 ['300', isl_gfx20_files]] 57 _gfx_ver = g[0] 58 isl_per_hw_ver_libs += static_library( 59 'isl_per_hw_ver@0@'.format(_gfx_ver), 60 [g[1], isl_per_hw_ver_files], 61 include_directories : [inc_include, inc_src, inc_intel], 62 dependencies : [idep_mesautil, idep_intel_dev, idep_genxml], 63 c_args : [ 64 no_override_init_args, 65 '-DGFX_VERx10=@0@'.format(_gfx_ver) 66 ], 67 gnu_symbol_visibility : 'hidden', 68 ) 69endforeach 70 71isl_format_layout_c = custom_target( 72 'isl_format_layout.c', 73 input : ['gen_format_layout.py', 'isl_format_layout.csv'], 74 output : 'isl_format_layout.c', 75 command : [prog_python, '@INPUT0@', '--csv', '@INPUT1@', '--out', '@OUTPUT@'], 76) 77 78files_isl_tiled_memcpy = files( 79 'isl_tiled_memcpy_normal.c' 80) 81 82files_isl_tiled_memcpy_sse41 = files( 83 'isl_tiled_memcpy_sse41.c', 84) 85 86isl_tiled_memcpy = static_library( 87 'isl_tiled_memcpy', 88 [files_isl_tiled_memcpy], 89 include_directories : [ 90 inc_include, inc_src, inc_intel, 91 ], 92 93 dependencies : [idep_mesautil, idep_intel_dev], 94 c_args : [no_override_init_args, sse2_arg], 95 gnu_symbol_visibility : 'hidden', 96 extra_files : ['isl_tiled_memcpy.c'] 97) 98 99if with_sse41 100 isl_tiled_memcpy_sse41 = static_library( 101 'isl_tiled_memcpy_sse41', 102 [files_isl_tiled_memcpy_sse41], 103 include_directories : [ 104 inc_include, inc_src, inc_intel, 105 ], 106 dependencies : [idep_mesautil, idep_intel_dev], 107 link_args : ['-Wl,--exclude-libs=ALL'], 108 c_args : [no_override_init_args, sse2_arg, sse41_args], 109 gnu_symbol_visibility : 'hidden', 110 extra_files : ['isl_tiled_memcpy.c'] 111 ) 112else 113 isl_tiled_memcpy_sse41 = [] 114endif 115 116libisl_files = files( 117 'isl.c', 118 'isl.h', 119 'isl_aux_info.c', 120 'isl_drm.c', 121 'isl_genX_priv.h', 122 'isl_format.c', 123 'isl_priv.h', 124 'isl_storage_image.c', 125) 126 127libisl = static_library( 128 'isl', 129 [libisl_files, isl_format_layout_c, genX_bits_h], 130 include_directories : [inc_include, inc_src, inc_intel], 131 link_with : [isl_per_hw_ver_libs, isl_tiled_memcpy, isl_tiled_memcpy_sse41], 132 dependencies : [idep_mesautil, idep_intel_dev], 133 c_args : [no_override_init_args], 134 gnu_symbol_visibility : 'hidden', 135) 136 137if with_intel_tools 138isl_query = executable( 139 'isl_query', 140 files('isl_query.c'), 141 dependencies : [idep_mesautil, dep_m, idep_intel_dev], 142 include_directories : [inc_include, inc_src, inc_intel], 143 link_with : [libisl], 144 c_args : [no_override_init_args], 145 gnu_symbol_visibility : 'hidden', 146 install : false 147) 148endif 149 150if with_tests 151 test( 152 'isl_surf_get_image_offset', 153 executable( 154 'isl_surf_get_image_offset_test', 155 'tests/isl_surf_get_image_offset_test.c', 156 dependencies : [dep_m, idep_mesautil, idep_intel_dev], 157 link_with: libisl, 158 include_directories : [inc_include, inc_src, inc_intel], 159 ), 160 suite : ['intel'], 161 ) 162 test( 163 'isl_aux_info', 164 executable( 165 'isl_aux_info_test', 166 [ 167 'tests/isl_aux_info_test.cpp', 168 'isl_aux_info.c', 169 ], 170 dependencies : [dep_m, idep_gtest, idep_mesautil, idep_intel_dev], 171 include_directories : [inc_include, inc_src, inc_intel], 172 c_args : '-DIN_UNIT_TEST', 173 cpp_args : '-DIN_UNIT_TEST', 174 ), 175 suite : ['intel'], 176 protocol : 'gtest', 177 ) 178 test( 179 'isl_tile_std_y', 180 executable( 181 'isl_tile_std_y_test', 182 'tests/isl_tile_std_y_test.c', 183 dependencies : [dep_m, idep_mesautil], 184 include_directories : [inc_include, inc_src, inc_intel], 185 link_with : [libisl, libintel_dev], 186 ), 187 suite : ['intel'], 188 ) 189 test( 190 'isl_tilememcpy', 191 executable( 192 'isl_tilememcpy_test', 193 [ 194 'tests/isl_tilememcpy_tiled_unittest.cpp', 195 ], 196 dependencies : [dep_m, idep_gtest, idep_mesautil, idep_intel_dev], 197 include_directories : [inc_include, inc_src, inc_intel], 198 link_with : libisl, 199 c_args : '-DIN_UNIT_TEST', 200 cpp_args : ['-std=c++17', '-DIN_UNIT_TEST'], 201 ), 202 suite : ['intel'], 203 ) 204 test( 205 'isl_surf_get_image_range_B_tile', 206 executable( 207 'isl_surf_get_image_range_B_tile_test', 208 'tests/isl_surf_get_image_range_B_tile_test.c', 209 dependencies : [dep_m, idep_mesautil, idep_intel_dev], 210 link_with: libisl, 211 include_directories : [inc_include, inc_src, inc_intel], 212 ), 213 suite : ['intel'], 214 ) 215endif 216