xref: /aosp_15_r20/external/igt-gpu-tools/overlay/meson.build (revision d83cc019efdc2edc6c4b16e9034a3ceb8d35d77c)
1*d83cc019SAndroid Build Coastguard Workerbuild_overlay = get_option('overlay')
2*d83cc019SAndroid Build Coastguard Workeroverlay_backends = get_option('overlay_backends')
3*d83cc019SAndroid Build Coastguard Worker
4*d83cc019SAndroid Build Coastguard Workergpu_overlay_src = [
5*d83cc019SAndroid Build Coastguard Worker	'chart.c',
6*d83cc019SAndroid Build Coastguard Worker	'config.c',
7*d83cc019SAndroid Build Coastguard Worker	'cpu-top.c',
8*d83cc019SAndroid Build Coastguard Worker	'debugfs.c',
9*d83cc019SAndroid Build Coastguard Worker	'gem-interrupts.c',
10*d83cc019SAndroid Build Coastguard Worker	'gem-objects.c',
11*d83cc019SAndroid Build Coastguard Worker	'gpu-top.c',
12*d83cc019SAndroid Build Coastguard Worker	'gpu-perf.c',
13*d83cc019SAndroid Build Coastguard Worker	'gpu-freq.c',
14*d83cc019SAndroid Build Coastguard Worker	'overlay.c',
15*d83cc019SAndroid Build Coastguard Worker	'power.c',
16*d83cc019SAndroid Build Coastguard Worker	'rc6.c',
17*d83cc019SAndroid Build Coastguard Worker]
18*d83cc019SAndroid Build Coastguard Worker
19*d83cc019SAndroid Build Coastguard Workerxv_backend_required = false
20*d83cc019SAndroid Build Coastguard Workerxlib_backend_required = false
21*d83cc019SAndroid Build Coastguard Workerbuild_xv_backend = overlay_backends.contains('xv') or overlay_backends.contains('auto')
22*d83cc019SAndroid Build Coastguard Workerbuild_xlib_backend = overlay_backends.contains('x') or overlay_backends.contains('auto')
23*d83cc019SAndroid Build Coastguard Workerif build_overlay.enabled()
24*d83cc019SAndroid Build Coastguard Worker	xv_backend_required = overlay_backends.contains('xv')
25*d83cc019SAndroid Build Coastguard Worker	xlib_backend_required = overlay_backends.contains('x')
26*d83cc019SAndroid Build Coastguard Workerendif
27*d83cc019SAndroid Build Coastguard Worker
28*d83cc019SAndroid Build Coastguard Workerxv = dependency('xv', required : xv_backend_required)
29*d83cc019SAndroid Build Coastguard Workerx11 = dependency('x11', required : xv_backend_required)
30*d83cc019SAndroid Build Coastguard Workerxext = dependency('xext', required : xv_backend_required)
31*d83cc019SAndroid Build Coastguard Workerdri2proto = dependency('dri2proto',
32*d83cc019SAndroid Build Coastguard Worker		       version : '>= 2.6',
33*d83cc019SAndroid Build Coastguard Worker		       required : xv_backend_required or xlib_backend_required)
34*d83cc019SAndroid Build Coastguard Workercairo_xlib = dependency('cairo-xlib', required : xlib_backend_required)
35*d83cc019SAndroid Build Coastguard Workerxrandr = dependency('xrandr', version : '>=1.3', required : build_overlay)
36*d83cc019SAndroid Build Coastguard Worker
37*d83cc019SAndroid Build Coastguard Workergpu_overlay_deps = [ realtime, math, cairo, pciaccess, libdrm,
38*d83cc019SAndroid Build Coastguard Worker	libdrm_intel, lib_igt_perf ]
39*d83cc019SAndroid Build Coastguard Worker
40*d83cc019SAndroid Build Coastguard Workerboth_x11_src = ''
41*d83cc019SAndroid Build Coastguard Worker
42*d83cc019SAndroid Build Coastguard Workerwith_xv_backend = false
43*d83cc019SAndroid Build Coastguard Workerwith_xlib_backend = false
44*d83cc019SAndroid Build Coastguard Workerbackends_strings = []
45*d83cc019SAndroid Build Coastguard Worker
46*d83cc019SAndroid Build Coastguard Workergpu_overlay_cflags = []
47*d83cc019SAndroid Build Coastguard Workerif build_xv_backend and xv.found() and x11.found() and xext.found() and dri2proto.found()
48*d83cc019SAndroid Build Coastguard Worker	both_x11_src = 'x11/position.c'
49*d83cc019SAndroid Build Coastguard Worker	gpu_overlay_src += [
50*d83cc019SAndroid Build Coastguard Worker		'x11/dri2.c',
51*d83cc019SAndroid Build Coastguard Worker		'x11/dri2.h',
52*d83cc019SAndroid Build Coastguard Worker		'x11/rgb2yuv.c',
53*d83cc019SAndroid Build Coastguard Worker		'x11/rgb2yuv.h',
54*d83cc019SAndroid Build Coastguard Worker		'x11/x11-overlay.c',
55*d83cc019SAndroid Build Coastguard Worker	]
56*d83cc019SAndroid Build Coastguard Worker	gpu_overlay_deps += [ xv, x11, xext, dri2proto ]
57*d83cc019SAndroid Build Coastguard Worker	gpu_overlay_cflags += [ '-DHAVE_OVERLAY_XVLIB' ]
58*d83cc019SAndroid Build Coastguard Worker	with_xv_backend = true
59*d83cc019SAndroid Build Coastguard Worker	backends_strings += 'Xv'
60*d83cc019SAndroid Build Coastguard Workerendif
61*d83cc019SAndroid Build Coastguard Worker
62*d83cc019SAndroid Build Coastguard Workerif build_xlib_backend and cairo_xlib.found() and dri2proto.found()
63*d83cc019SAndroid Build Coastguard Worker	both_x11_src = 'x11/position.c'
64*d83cc019SAndroid Build Coastguard Worker	gpu_overlay_src += 'x11/x11-window.c'
65*d83cc019SAndroid Build Coastguard Worker	gpu_overlay_deps += [ cairo_xlib, dri2proto ]
66*d83cc019SAndroid Build Coastguard Worker	gpu_overlay_cflags += [ '-DHAVE_OVERLAY_XLIB' ]
67*d83cc019SAndroid Build Coastguard Worker	with_xlib_backend = true
68*d83cc019SAndroid Build Coastguard Worker	backends_strings += 'X'
69*d83cc019SAndroid Build Coastguard Workerendif
70*d83cc019SAndroid Build Coastguard Worker
71*d83cc019SAndroid Build Coastguard Workergpu_overlay_src += both_x11_src
72*d83cc019SAndroid Build Coastguard Worker
73*d83cc019SAndroid Build Coastguard Workergpu_overlay_src += 'kms/kms-overlay.c'
74*d83cc019SAndroid Build Coastguard Worker
75*d83cc019SAndroid Build Coastguard Workerleg = find_program('leg', required : build_overlay)
76*d83cc019SAndroid Build Coastguard Workerif leg.found()
77*d83cc019SAndroid Build Coastguard Worker	leg_file = custom_target('tracepoint_format',
78*d83cc019SAndroid Build Coastguard Worker		output: 'tracepoint_format.h',
79*d83cc019SAndroid Build Coastguard Worker		input: 'tracepoint_format.leg',
80*d83cc019SAndroid Build Coastguard Worker		command: [leg, '-P', '-o', '@OUTPUT@', '@INPUT@'])
81*d83cc019SAndroid Build Coastguard Worker	gpu_overlay_src += leg_file
82*d83cc019SAndroid Build Coastguard Workerelse
83*d83cc019SAndroid Build Coastguard Worker	message('WARNING: leg command not found, disabling overlay; try : apt-get install peg')
84*d83cc019SAndroid Build Coastguard Workerendif
85*d83cc019SAndroid Build Coastguard Worker
86*d83cc019SAndroid Build Coastguard Workerif not build_overlay.disabled() and ['x86', 'x86_64'].contains(host_machine.cpu_family()) and libdrm_intel.found() and leg.found() and xrandr.found() and cairo.found() and (with_xlib_backend or with_xv_backend)
87*d83cc019SAndroid Build Coastguard Worker	executable('intel-gpu-overlay', gpu_overlay_src,
88*d83cc019SAndroid Build Coastguard Worker			include_directories : inc,
89*d83cc019SAndroid Build Coastguard Worker			c_args : gpu_overlay_cflags,
90*d83cc019SAndroid Build Coastguard Worker			dependencies : gpu_overlay_deps,
91*d83cc019SAndroid Build Coastguard Worker			install : true)
92*d83cc019SAndroid Build Coastguard Worker	build_info += 'Build overlay: true'
93*d83cc019SAndroid Build Coastguard Worker	build_info += 'Overlay backends: ' + ','.join(backends_strings)
94*d83cc019SAndroid Build Coastguard Workerelse
95*d83cc019SAndroid Build Coastguard Worker	if build_overlay.enabled()
96*d83cc019SAndroid Build Coastguard Worker		error('Cannot build overlay due to missing dependencies')
97*d83cc019SAndroid Build Coastguard Worker	endif
98*d83cc019SAndroid Build Coastguard Worker	build_info += 'Build overlay: false'
99*d83cc019SAndroid Build Coastguard Workerendif
100