Files
third_party_mesa3d/src/freedreno/decode/meson.build
Rob Clark 2133d34b11 freedreno/crashdec: Split out mempool decoding
Before we start adding GMU HFI decoding, lets split the other big
section specific decoding (mempool) out into it's own file.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13937>
2021-12-01 17:53:21 +00:00

209 lines
5.4 KiB
Meson

# Copyright © 2020 Google, Inc
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
if with_tests
diff = find_program('diff')
endif
# Shared cmdstream decoding:
libfreedreno_cffdec = static_library(
'freedreno_cffdec',
[
'buffers.c',
'buffers.h',
'cffdec.c',
'cffdec.h',
'pager.c',
'pager.h',
'rnnutil.c',
'rnnutil.h',
'util.h',
],
include_directories: [
inc_freedreno,
inc_freedreno_rnn,
inc_include,
inc_src,
],
c_args : [ no_override_init_args ],
gnu_symbol_visibility: 'hidden',
dependencies: [],
link_with: [
libfreedreno_rnn,
libfreedreno_ir2, # for disasm_a2xx
libfreedreno_ir3, # for disasm_a3xx
_libmesa_util,
],
build_by_default: false,
)
if dep_libarchive.found()
libfreedreno_io = static_library(
'libfreedreno_io',
[
'io.c',
'io.h',
],
include_directories: [],
c_args : [no_override_init_args],
gnu_symbol_visibility: 'hidden',
dependencies: [
dep_libarchive,
],
build_by_default: false,
)
endif
if dep_lua.found() and dep_libarchive.found()
cffdump = executable(
'cffdump',
[
'cffdump.c',
'script.c',
'script.h'
],
include_directories: [
inc_freedreno,
inc_freedreno_rnn,
inc_include,
inc_src,
],
c_args : [no_override_init_args],
gnu_symbol_visibility: 'hidden',
dependencies: [
dep_lua,
],
link_with: [
libfreedreno_cffdec,
libfreedreno_io,
],
build_by_default: with_tools.contains('freedreno'),
install: install_fd_decode_tools,
)
if with_tests
# dump only a single frame, and single tile pass, to keep the
# reference output size managable
cffdump_tests = [
['fd-clouds', ['--frame', '0', '--once']],
['es2gears-a320', ['--frame', '0', '--once']],
['glxgears-a420', ['--frame', '1', '--once']],
['dEQP-GLES2.functional.texture.specification.basic_teximage2d.rgba16f_2d', ['--once']],
['dEQP-VK.draw.indirect_draw.indexed.indirect_draw_count.triangle_list', ['--frame', '0', '--once']],
# Test a lua script to ensure we don't break scripting API
['shadow', ['--script', files(join_paths(meson.current_source_dir(), 'scripts', 'parse-submits.lua'))]],
]
foreach cffdump_test: cffdump_tests
name = cffdump_test[0]
args = cffdump_test[1]
log = custom_target(name + '.log',
output: name + '.log',
command: [cffdump, '--unit-test', args, files('../.gitlab-ci/traces/' + name + '.rd.gz')],
capture: true,
)
test('cffdump-' + name,
diff,
args: ['-u', files('../.gitlab-ci/reference/' + name + '.log'), log],
suite: 'freedreno',
workdir: meson.source_root()
)
endforeach
endif
endif
crashdec = executable(
'crashdec',
[
'crashdec.c',
'crashdec.h',
'crashdec-mempool.c',
],
include_directories: [
inc_freedreno,
inc_freedreno_rnn,
inc_include,
inc_src,
],
gnu_symbol_visibility: 'hidden',
dependencies: [],
link_with: [
libfreedreno_cffdec,
],
build_by_default: with_tools.contains('freedreno'),
install: install_fd_decode_tools,
)
if with_tests
crashdec_output = custom_target('crashdec.txt',
output: 'crashdec.txt',
command: [crashdec, '-sf', files('../.gitlab-ci/traces/crash.devcore')],
capture: true
)
test('crashdec',
diff,
args: ['-u', files('../.gitlab-ci/reference/crash.log'), crashdec_output],
suite: 'freedreno',
workdir: meson.source_root()
)
endif
if dep_libarchive.found()
pgmdump = executable(
'pgmdump',
'pgmdump.c',
include_directories: [
inc_freedreno,
inc_include,
inc_src,
],
gnu_symbol_visibility: 'hidden',
dependencies: [],
link_with: [
libfreedreno_cffdec,
libfreedreno_io,
libfreedreno_ir2, # for disasm_a2xx
libfreedreno_ir3, # for disasm_a3xx
],
build_by_default: with_tools.contains('freedreno'),
install: false,
)
pgmdump2 = executable(
'pgmdump2',
'pgmdump2.c',
include_directories: [
inc_freedreno,
inc_include,
inc_src,
],
gnu_symbol_visibility: 'hidden',
dependencies: [],
link_with: [
libfreedreno_cffdec,
libfreedreno_io,
libfreedreno_ir2, # for disasm_a2xx
libfreedreno_ir3, # for disasm_a3xx
],
build_by_default: with_tools.contains('freedreno'),
install: false,
)
endif