From: Mark Collins Date: Tue, 8 Aug 2023 08:54:59 +0000 (+0000) Subject: freedreno/decode: Support building replay for multiple KMDs X-Git-Tag: upstream/23.3.3~2034 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b91f9f68f04c361b0a17d7e74f442269004a8d7d;p=platform%2Fupstream%2Fmesa.git freedreno/decode: Support building replay for multiple KMDs As `freedreno_kmds` can contain both `msm` and `kgsl`, this case would just produce a build with just KGSL due to the precedence of the check which is inconsistent behavior. Now `replay` is built for all active KMDs with a suffix for the KMD (eg: replay-kgsl/replay-msm). Signed-off-by: Mark Collins Part-of: --- diff --git a/src/freedreno/decode/meson.build b/src/freedreno/decode/meson.build index 39f23ac..6a093c6 100644 --- a/src/freedreno/decode/meson.build +++ b/src/freedreno/decode/meson.build @@ -70,34 +70,48 @@ if dep_libarchive.found() build_by_default: false, ) - replay_flags = [] - replay_deps = [] - if freedreno_kmds.contains('kgsl') - replay_flags += '-DFD_REPLAY_KGSL' - else - replay_deps += dep_libdrm - endif + foreach kmd : freedreno_kmds + if not (kmd in ['kgsl', 'msm']) + warning('replay not supported for ' + kmd + ' KMD') + continue + endif - replay = executable( - 'replay', - [ - 'replay.c' - ], - include_directories: [ - inc_freedreno, - inc_include, - inc_src, - ], - c_args : [no_override_init_args, replay_flags], - gnu_symbol_visibility: 'hidden', - dependencies: replay_deps, - link_with: [ - libfreedreno_cffdec, - libfreedreno_io, - ], - build_by_default: with_tools.contains('freedreno'), - install: install_fd_decode_tools, - ) + # Only append the KMD name if there are multiple KMDs + if freedreno_kmds.length() == 1 + replay_name = 'replay' + else + replay_name = 'replay-' + kmd + endif + + replay_flags = [] + replay_deps = [] + if kmd == 'kgsl' + replay_flags += '-DFD_REPLAY_KGSL' + elif kmd == 'msm' + replay_deps += dep_libdrm + endif + + replay = executable( + replay_name, + [ + 'replay.c' + ], + include_directories: [ + inc_freedreno, + inc_include, + inc_src, + ], + c_args : [no_override_init_args, replay_flags], + gnu_symbol_visibility: 'hidden', + dependencies: replay_deps, + link_with: [ + libfreedreno_cffdec, + libfreedreno_io, + ], + build_by_default: with_tools.contains('freedreno'), + install: install_fd_decode_tools, + ) + endforeach rddecompiler = executable( 'rddecompiler',