You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.0 KiB
100 lines
3.0 KiB
build_overlay = get_option('overlay')
|
|
overlay_backends = get_option('overlay_backends')
|
|
|
|
gpu_overlay_src = [
|
|
'chart.c',
|
|
'config.c',
|
|
'cpu-top.c',
|
|
'debugfs.c',
|
|
'gem-interrupts.c',
|
|
'gem-objects.c',
|
|
'gpu-top.c',
|
|
'gpu-perf.c',
|
|
'gpu-freq.c',
|
|
'overlay.c',
|
|
'power.c',
|
|
'rc6.c',
|
|
]
|
|
|
|
xv_backend_required = false
|
|
xlib_backend_required = false
|
|
build_xv_backend = overlay_backends.contains('xv') or overlay_backends.contains('auto')
|
|
build_xlib_backend = overlay_backends.contains('x') or overlay_backends.contains('auto')
|
|
if build_overlay.enabled()
|
|
xv_backend_required = overlay_backends.contains('xv')
|
|
xlib_backend_required = overlay_backends.contains('x')
|
|
endif
|
|
|
|
xv = dependency('xv', required : xv_backend_required)
|
|
x11 = dependency('x11', required : xv_backend_required)
|
|
xext = dependency('xext', required : xv_backend_required)
|
|
dri2proto = dependency('dri2proto',
|
|
version : '>= 2.6',
|
|
required : xv_backend_required or xlib_backend_required)
|
|
cairo_xlib = dependency('cairo-xlib', required : xlib_backend_required)
|
|
xrandr = dependency('xrandr', version : '>=1.3', required : build_overlay)
|
|
|
|
gpu_overlay_deps = [ realtime, math, cairo, pciaccess, libdrm,
|
|
libdrm_intel, lib_igt_perf ]
|
|
|
|
both_x11_src = ''
|
|
|
|
with_xv_backend = false
|
|
with_xlib_backend = false
|
|
backends_strings = []
|
|
|
|
gpu_overlay_cflags = []
|
|
if build_xv_backend and xv.found() and x11.found() and xext.found() and dri2proto.found()
|
|
both_x11_src = 'x11/position.c'
|
|
gpu_overlay_src += [
|
|
'x11/dri2.c',
|
|
'x11/dri2.h',
|
|
'x11/rgb2yuv.c',
|
|
'x11/rgb2yuv.h',
|
|
'x11/x11-overlay.c',
|
|
]
|
|
gpu_overlay_deps += [ xv, x11, xext, dri2proto ]
|
|
gpu_overlay_cflags += [ '-DHAVE_OVERLAY_XVLIB' ]
|
|
with_xv_backend = true
|
|
backends_strings += 'Xv'
|
|
endif
|
|
|
|
if build_xlib_backend and cairo_xlib.found() and dri2proto.found()
|
|
both_x11_src = 'x11/position.c'
|
|
gpu_overlay_src += 'x11/x11-window.c'
|
|
gpu_overlay_deps += [ cairo_xlib, dri2proto ]
|
|
gpu_overlay_cflags += [ '-DHAVE_OVERLAY_XLIB' ]
|
|
with_xlib_backend = true
|
|
backends_strings += 'X'
|
|
endif
|
|
|
|
gpu_overlay_src += both_x11_src
|
|
|
|
gpu_overlay_src += 'kms/kms-overlay.c'
|
|
|
|
leg = find_program('leg', required : build_overlay)
|
|
if leg.found()
|
|
leg_file = custom_target('tracepoint_format',
|
|
output: 'tracepoint_format.h',
|
|
input: 'tracepoint_format.leg',
|
|
command: [leg, '-P', '-o', '@OUTPUT@', '@INPUT@'])
|
|
gpu_overlay_src += leg_file
|
|
else
|
|
message('WARNING: leg command not found, disabling overlay; try : apt-get install peg')
|
|
endif
|
|
|
|
if 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)
|
|
executable('intel-gpu-overlay', gpu_overlay_src,
|
|
include_directories : inc,
|
|
c_args : gpu_overlay_cflags,
|
|
dependencies : gpu_overlay_deps,
|
|
install : true)
|
|
build_info += 'Build overlay: true'
|
|
build_info += 'Overlay backends: ' + ','.join(backends_strings)
|
|
else
|
|
if build_overlay.enabled()
|
|
error('Cannot build overlay due to missing dependencies')
|
|
endif
|
|
build_info += 'Build overlay: false'
|
|
endif
|