2017-09-20 19:53:29 +01:00
|
|
|
# Copyright © 2017 Intel Corporation
|
|
|
|
|
|
|
|
# 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.
|
|
|
|
|
2020-08-21 13:09:58 +01:00
|
|
|
amd_json_files = [
|
|
|
|
# Generated:
|
|
|
|
'../registers/gfx6.json',
|
|
|
|
'../registers/gfx7.json',
|
|
|
|
'../registers/gfx8.json',
|
|
|
|
'../registers/gfx81.json',
|
|
|
|
'../registers/gfx9.json',
|
|
|
|
'../registers/gfx10.json',
|
|
|
|
'../registers/gfx103.json',
|
2021-03-28 07:12:47 +01:00
|
|
|
'../registers/gfx11.json',
|
2020-08-21 13:09:58 +01:00
|
|
|
|
|
|
|
# Manually written:
|
|
|
|
'../registers/pkt3.json',
|
|
|
|
'../registers/gfx10-rsrc.json',
|
2021-03-28 07:12:47 +01:00
|
|
|
'../registers/gfx11-rsrc.json',
|
2020-08-21 13:09:58 +01:00
|
|
|
'../registers/registers-manually-defined.json',
|
|
|
|
]
|
|
|
|
|
2017-09-20 19:53:29 +01:00
|
|
|
sid_tables_h = custom_target(
|
|
|
|
'sid_tables_h',
|
2020-08-21 13:09:58 +01:00
|
|
|
input : ['sid_tables.py', 'sid.h'] + amd_json_files,
|
2017-09-20 19:53:29 +01:00
|
|
|
output : 'sid_tables.h',
|
2018-08-09 09:27:26 +01:00
|
|
|
command : [prog_python, '@INPUT@'],
|
2017-09-20 19:53:29 +01:00
|
|
|
capture : true,
|
|
|
|
)
|
|
|
|
|
2019-05-07 00:08:43 +01:00
|
|
|
amdgfxregs_h = custom_target(
|
|
|
|
'amdgfxregs_h',
|
2020-08-21 13:09:58 +01:00
|
|
|
input : ['../registers/makeregheader.py'] + amd_json_files,
|
2019-05-07 00:08:43 +01:00
|
|
|
output : 'amdgfxregs.h',
|
|
|
|
command : [prog_python, '@INPUT@', '--sort', 'address', '--guard', 'AMDGFXREGS_H'],
|
|
|
|
capture : true,
|
|
|
|
)
|
|
|
|
|
2020-06-01 23:55:22 +01:00
|
|
|
gfx10_format_table_c = custom_target(
|
|
|
|
'gfx10_format_table.c',
|
2020-06-01 22:49:22 +01:00
|
|
|
input : files(
|
|
|
|
'gfx10_format_table.py',
|
2021-07-27 13:36:30 +01:00
|
|
|
'../../util/format/u_format.csv', '../registers/gfx10-rsrc.json', '../registers/gfx11-rsrc.json'
|
2020-06-01 22:49:22 +01:00
|
|
|
),
|
2020-06-01 23:55:22 +01:00
|
|
|
output : 'gfx10_format_table.c',
|
2020-06-01 22:49:22 +01:00
|
|
|
command : [prog_python, '@INPUT@'],
|
|
|
|
capture : true,
|
|
|
|
depend_files : ['../registers/regdb.py']
|
|
|
|
)
|
|
|
|
|
2017-09-20 19:53:29 +01:00
|
|
|
amd_common_files = files(
|
|
|
|
'ac_binary.c',
|
|
|
|
'ac_binary.h',
|
2019-10-29 16:40:30 +00:00
|
|
|
'ac_shader_args.c',
|
|
|
|
'ac_shader_args.h',
|
2017-12-14 12:51:45 +00:00
|
|
|
'ac_shader_util.c',
|
|
|
|
'ac_shader_util.h',
|
2017-09-20 19:53:29 +01:00
|
|
|
'ac_gpu_info.c',
|
|
|
|
'ac_gpu_info.h',
|
2018-05-04 15:00:35 +01:00
|
|
|
'ac_rtld.c',
|
|
|
|
'ac_rtld.h',
|
2017-09-20 19:53:29 +01:00
|
|
|
'ac_surface.c',
|
|
|
|
'ac_surface.h',
|
|
|
|
'ac_debug.c',
|
|
|
|
'ac_debug.h',
|
2020-06-15 21:31:43 +01:00
|
|
|
'ac_shadowed_regs.c',
|
|
|
|
'ac_shadowed_regs.h',
|
2021-05-31 15:38:34 +01:00
|
|
|
'ac_spm.c',
|
|
|
|
'ac_spm.h',
|
2020-12-08 10:31:08 +00:00
|
|
|
'ac_sqtt.c',
|
2020-12-08 10:06:48 +00:00
|
|
|
'ac_sqtt.h',
|
2020-12-08 10:41:34 +00:00
|
|
|
'ac_rgp.c',
|
|
|
|
'ac_rgp.h',
|
2021-01-27 09:36:59 +00:00
|
|
|
'ac_msgpack.c',
|
|
|
|
'ac_msgpack.h',
|
2021-01-27 10:32:22 +00:00
|
|
|
'ac_rgp_elf_object_pack.c',
|
2021-04-22 15:14:32 +01:00
|
|
|
'ac_nir.c',
|
2021-02-09 18:19:53 +00:00
|
|
|
'ac_nir.h',
|
2021-12-13 02:20:09 +00:00
|
|
|
'ac_nir_opt_outputs.c',
|
2021-04-01 11:43:31 +01:00
|
|
|
'ac_nir_cull.c',
|
2021-03-02 14:30:58 +00:00
|
|
|
'ac_nir_lower_esgs_io_to_mem.c',
|
radv,ac/nir: lower global access to _amd global access intrinsics
fossil-db (Sienna Cichlid):
Totals from 400 (0.30% of 134621) affected shaders:
VGPRs: 18696 -> 18688 (-0.04%)
CodeSize: 2031348 -> 1946640 (-4.17%)
Instrs: 374703 -> 360226 (-3.86%)
Latency: 4200727 -> 4108628 (-2.19%); split: -2.20%, +0.01%
InvThroughput: 1059935 -> 1029441 (-2.88%); split: -2.88%, +0.00%
VClause: 5777 -> 5771 (-0.10%)
SClause: 11890 -> 10891 (-8.40%); split: -8.57%, +0.17%
Copies: 34035 -> 33259 (-2.28%); split: -2.98%, +0.70%
Branches: 11108 -> 11100 (-0.07%); split: -0.08%, +0.01%
PreSGPRs: 15999 -> 15942 (-0.36%); split: -0.44%, +0.08%
PreVGPRs: 16994 -> 16970 (-0.14%)
fossil-db (Polaris10):
Totals from 400 (0.29% of 135668) affected shaders:
SGPRs: 23799 -> 22919 (-3.70%); split: -4.30%, +0.61%
VGPRs: 18480 -> 18472 (-0.04%)
CodeSize: 2090316 -> 2041592 (-2.33%)
Instrs: 395461 -> 385747 (-2.46%); split: -2.46%, +0.00%
Latency: 5045768 -> 5020196 (-0.51%); split: -0.53%, +0.02%
InvThroughput: 2694320 -> 2689886 (-0.16%); split: -0.23%, +0.07%
VClause: 5982 -> 5968 (-0.23%)
SClause: 12064 -> 10823 (-10.29%); split: -10.33%, +0.04%
Copies: 48233 -> 48322 (+0.18%); split: -0.47%, +0.65%
PreSGPRs: 16409 -> 16358 (-0.31%); split: -0.39%, +0.08%
fossil-db (Pitcairn):
Totals from 400 (0.29% of 135668) affected shaders:
SGPRs: 22431 -> 22215 (-0.96%); split: -2.60%, +1.64%
VGPRs: 18776 -> 18560 (-1.15%); split: -1.21%, +0.06%
CodeSize: 2104440 -> 2017708 (-4.12%)
MaxWaves: 2363 -> 2367 (+0.17%)
Instrs: 413099 -> 397446 (-3.79%)
Latency: 5507707 -> 5450251 (-1.04%); split: -1.12%, +0.07%
InvThroughput: 2838867 -> 2786903 (-1.83%); split: -1.83%, +0.00%
VClause: 10334 -> 10097 (-2.29%)
SClause: 12346 -> 11005 (-10.86%); split: -10.89%, +0.02%
Copies: 54034 -> 52065 (-3.64%); split: -3.99%, +0.35%
PreSGPRs: 17916 -> 17857 (-0.33%); split: -0.40%, +0.07%
PreVGPRs: 16917 -> 16893 (-0.14%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14124>
2021-12-02 14:35:15 +00:00
|
|
|
'ac_nir_lower_global_access.c',
|
2022-01-15 12:56:13 +00:00
|
|
|
'ac_nir_lower_taskmesh_io_to_mem.c',
|
2021-02-09 18:19:53 +00:00
|
|
|
'ac_nir_lower_tess_io_to_mem.c',
|
2021-04-09 15:56:57 +01:00
|
|
|
'ac_nir_lower_ngg.c',
|
2021-04-01 13:29:46 +01:00
|
|
|
'amd_family.c',
|
2021-05-31 09:10:42 +01:00
|
|
|
'ac_perfcounter.c',
|
|
|
|
'ac_perfcounter.h',
|
2017-09-20 19:53:29 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
libamd_common = static_library(
|
|
|
|
'amd_common',
|
2020-06-01 23:55:22 +01:00
|
|
|
[amd_common_files, sid_tables_h, amdgfxregs_h, gfx10_format_table_c],
|
2017-12-11 23:56:08 +00:00
|
|
|
include_directories : [
|
2019-03-05 16:21:47 +00:00
|
|
|
inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_compiler, inc_mapi, inc_amd,
|
2017-12-11 23:56:08 +00:00
|
|
|
],
|
|
|
|
dependencies : [
|
2019-09-27 09:29:51 +01:00
|
|
|
dep_thread, dep_elf, dep_libdrm_amdgpu, dep_valgrind,
|
2021-03-22 23:43:53 +00:00
|
|
|
idep_mesautil, idep_nir_headers, idep_nir
|
2017-12-11 23:56:08 +00:00
|
|
|
],
|
2020-04-24 21:10:41 +01:00
|
|
|
gnu_symbol_visibility : 'hidden',
|
2021-11-11 07:24:38 +00:00
|
|
|
c_args : ['-DADDR_FASTCALL=']
|
2017-09-20 19:53:29 +01:00
|
|
|
)
|
2019-05-07 00:08:43 +01:00
|
|
|
|
|
|
|
idep_amdgfxregs_h = declare_dependency(sources : [amdgfxregs_h])
|
2019-10-14 23:09:08 +01:00
|
|
|
|
|
|
|
|
2021-02-03 19:42:07 +00:00
|
|
|
if with_tests and not with_platform_windows
|
2020-11-28 07:35:51 +00:00
|
|
|
test(
|
2019-10-14 23:09:08 +01:00
|
|
|
'ac_surface_modifier_test',
|
2020-11-28 07:35:51 +00:00
|
|
|
executable(
|
|
|
|
'ac_surface_modifier_test',
|
|
|
|
['ac_surface_modifier_test.c'],
|
|
|
|
link_with: [libamd_common, libamdgpu_addrlib],
|
|
|
|
include_directories : [
|
|
|
|
inc_amd, inc_gallium, inc_include, inc_src,
|
|
|
|
],
|
|
|
|
dependencies: [idep_amdgfxregs_h, dep_libdrm_amdgpu, idep_mesautil],
|
|
|
|
),
|
|
|
|
suite: ['amd']
|
|
|
|
)
|
2021-03-19 19:52:44 +00:00
|
|
|
|
|
|
|
# Limit this to only a few architectures for the Gitlab CI.
|
|
|
|
if ['x86', 'x86_64', 'aarch64'].contains(host_machine.cpu_family())
|
|
|
|
test(
|
2021-04-13 12:53:09 +01:00
|
|
|
'ac_surface_meta_address_test',
|
2021-03-19 19:52:44 +00:00
|
|
|
executable(
|
2021-04-13 12:53:09 +01:00
|
|
|
'ac_surface_meta_address_test',
|
|
|
|
['ac_surface_meta_address_test.c'],
|
2021-03-19 19:52:44 +00:00
|
|
|
link_with: [libamd_common, libamdgpu_addrlib],
|
|
|
|
include_directories : [
|
|
|
|
inc_amd, inc_gallium, inc_include, inc_src,
|
|
|
|
],
|
|
|
|
dependencies: [idep_amdgfxregs_h, dep_libdrm_amdgpu, idep_mesautil, dep_openmp],
|
|
|
|
),
|
|
|
|
suite: ['amd']
|
|
|
|
)
|
|
|
|
endif
|
2020-11-28 07:35:51 +00:00
|
|
|
endif
|