1# Copyright © 2018 Rob Clark 2# Copyright © 2019 Collabora 3# SPDX-License-Identifier: MIT 4 5subdir('genxml') 6subdir('kmod') 7 8pixel_format_versions = ['5', '6', '7', '9', '10'] 9libpanfrost_pixel_format = [] 10 11deps_for_libpanfrost = [dep_libdrm, idep_pan_packers, idep_mesautil] 12 13foreach ver : pixel_format_versions 14 libpanfrost_pixel_format += static_library( 15 'pan-format-v' + ver, 16 ['pan_format.c', pan_packers], 17 include_directories : [ 18 inc_src, inc_include, inc_panfrost_hw, inc_panfrost_hw 19 ], 20 c_args : ['-DPAN_ARCH=' + ver], 21 gnu_symbol_visibility : 'hidden', 22 dependencies : [deps_for_libpanfrost, dep_valgrind], 23) 24endforeach 25 26libpanfrost_per_arch = [] 27 28foreach ver : ['4', '5', '6', '7', '9', '10'] 29 libpanfrost_per_arch += static_library( 30 'pan-arch-v' + ver, 31 [ 32 'pan_blend.c', 33 'pan_blitter.c', 34 'pan_desc.c', 35 'pan_shader.c', 36 'pan_texture.c', 37 ], 38 include_directories : [inc_include, inc_src, inc_panfrost_hw], 39 c_args : ['-DPAN_ARCH=' + ver], 40 gnu_symbol_visibility : 'hidden', 41 dependencies : [deps_for_libpanfrost, idep_nir], 42 ) 43endforeach 44 45foreach ver : ['7'] 46 libpanfrost_per_arch += static_library( 47 'pan-arch-indirect-v' + ver, 48 'pan_indirect_dispatch.c', 49 include_directories : [inc_include, inc_src, inc_panfrost_hw], 50 c_args : ['-DPAN_ARCH=' + ver], 51 gnu_symbol_visibility : 'hidden', 52 dependencies : [deps_for_libpanfrost, idep_nir], 53 ) 54endforeach 55 56libpanfrost_lib_files = files( 57 'pan_encoder.h', 58 59 'pan_afbc.c', 60 'pan_afrc.c', 61 'pan_attributes.c', 62 'pan_blend.c', 63 'pan_clear.c', 64 'pan_earlyzs.c', 65 'pan_samples.c', 66 'pan_tiler.c', 67 'pan_layout.c', 68 'pan_scratch.c', 69 'pan_props.c', 70 'pan_util.c', 71) 72 73libpanfrost_lib = static_library( 74 'panfrost_lib', 75 [libpanfrost_lib_files, pan_packers], 76 include_directories : [inc_include, inc_src, inc_panfrost_hw], 77 c_args : [no_override_init_args], 78 gnu_symbol_visibility : 'hidden', 79 dependencies: [dep_libdrm, idep_nir, idep_mesautil], 80 build_by_default : false, 81 link_with: [libpanfrost_pixel_format, libpanfrost_per_arch, libpankmod_lib], 82) 83 84libpanfrost_dep = declare_dependency( 85 link_with: [libpanfrost_lib, libpanfrost_decode, libpanfrost_midgard, libpanfrost_bifrost, libpanfrost_pixel_format, libpanfrost_per_arch], 86 include_directories: [inc_include, inc_src, inc_panfrost_hw, inc_panfrost], 87 dependencies: [deps_for_libpanfrost, libpankmod_dep, idep_nir], 88) 89 90if with_tests 91 test( 92 'panfrost_blend', 93 executable( 94 'panfrost_blend_test', 95 files('tests/test-blend.c'), 96 c_args : [c_msvc_compat_args, no_override_init_args], 97 gnu_symbol_visibility : 'hidden', 98 include_directories : [inc_include, inc_src], 99 dependencies: [libpanfrost_dep], 100 ), 101 suite : ['panfrost'], 102 ) 103 104 test( 105 'panfrost_clear', 106 executable( 107 'panfrost_clear_test', 108 files('tests/test-clear.c'), 109 c_args : [c_msvc_compat_args, no_override_init_args], 110 gnu_symbol_visibility : 'hidden', 111 include_directories : [inc_include, inc_src], 112 dependencies: [libpanfrost_dep], 113 ), 114 suite : ['panfrost'], 115 ) 116 117 test( 118 'panfrost_tests', 119 executable( 120 'panfrost_tests', 121 files( 122 'tests/test-earlyzs.cpp', 123 'tests/test-layout.cpp', 124 ), 125 c_args : [c_msvc_compat_args, no_override_init_args], 126 gnu_symbol_visibility : 'hidden', 127 include_directories : [inc_include, inc_src, inc_panfrost], 128 dependencies: [idep_gtest, libpanfrost_dep], 129 ), 130 suite : ['panfrost'], 131 protocol : 'gtest', 132 ) 133endif 134