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