Mesa (main): r600/sfn: rewrite NIR backend
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jul 7 20:18:52 UTC 2022
Module: Mesa
Branch: main
Commit: 79ca456b4837b3bc21cf9ef3c03c505c4b4909f6
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=79ca456b4837b3bc21cf9ef3c03c505c4b4909f6
Author: Gert Wollny <gert.wollny at collabora.com>
Date: Sat Jun 19 13:03:32 2021 +0200
r600/sfn: rewrite NIR backend
This is a rewite of the NIR backend. it adds some optimization
and a scheduler.
v2: - replace some magic numbers by constants
- make sure constructor is always used with new
- use default initialization in more places
(changes suggested by Filip Gawin)
Signed-off-by: Gert Wollny <gert.wollny at collabora.com>
Reviewed-by: Filip Gawin <filip at gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17076>
---
src/gallium/drivers/r600/meson.build | 119 +-
src/gallium/drivers/r600/r600_asm.c | 4 +-
src/gallium/drivers/r600/r600_asm.h | 2 +
src/gallium/drivers/r600/r600_pipe.c | 13 +-
src/gallium/drivers/r600/sfn/sfn_alu_defines.cpp | 126 +-
src/gallium/drivers/r600/sfn/sfn_alu_defines.h | 103 +-
.../r600/sfn/sfn_alu_readport_validation.cpp | 329 +++
.../drivers/r600/sfn/sfn_alu_readport_validation.h | 41 +
.../{sfn_ir_to_assembly.cpp => sfn_assembler.cpp} | 1626 +++++-----
src/gallium/drivers/r600/sfn/sfn_assembler.h | 26 +
.../drivers/r600/sfn/sfn_conditionaljumptracker.h | 4 -
src/gallium/drivers/r600/sfn/sfn_debug.cpp | 4 +
src/gallium/drivers/r600/sfn/sfn_debug.h | 6 +-
src/gallium/drivers/r600/sfn/sfn_defines.h | 3 +
src/gallium/drivers/r600/sfn/sfn_docu.txt | 47 +-
.../drivers/r600/sfn/sfn_emitaluinstruction.cpp | 1046 -------
.../drivers/r600/sfn/sfn_emitaluinstruction.h | 116 -
.../drivers/r600/sfn/sfn_emitinstruction.cpp | 169 --
src/gallium/drivers/r600/sfn/sfn_emitinstruction.h | 102 -
.../drivers/r600/sfn/sfn_emitssboinstruction.cpp | 741 -----
.../drivers/r600/sfn/sfn_emitssboinstruction.h | 60 -
.../drivers/r600/sfn/sfn_emittexinstruction.cpp | 671 -----
.../drivers/r600/sfn/sfn_emittexinstruction.h | 96 -
src/gallium/drivers/r600/sfn/sfn_instr.cpp | 522 ++++
src/gallium/drivers/r600/sfn/sfn_instr.h | 314 ++
src/gallium/drivers/r600/sfn/sfn_instr_alu.cpp | 2449 +++++++++++++++
src/gallium/drivers/r600/sfn/sfn_instr_alu.h | 193 ++
.../drivers/r600/sfn/sfn_instr_alugroup.cpp | 361 +++
src/gallium/drivers/r600/sfn/sfn_instr_alugroup.h | 89 +
.../drivers/r600/sfn/sfn_instr_controlflow.cpp | 176 ++
.../drivers/r600/sfn/sfn_instr_controlflow.h | 81 +
src/gallium/drivers/r600/sfn/sfn_instr_export.cpp | 524 ++++
src/gallium/drivers/r600/sfn/sfn_instr_export.h | 213 ++
src/gallium/drivers/r600/sfn/sfn_instr_fetch.cpp | 659 +++++
src/gallium/drivers/r600/sfn/sfn_instr_fetch.h | 152 +
src/gallium/drivers/r600/sfn/sfn_instr_lds.cpp | 411 +++
src/gallium/drivers/r600/sfn/sfn_instr_lds.h | 80 +
src/gallium/drivers/r600/sfn/sfn_instr_mem.cpp | 844 ++++++
src/gallium/drivers/r600/sfn/sfn_instr_mem.h | 177 ++
src/gallium/drivers/r600/sfn/sfn_instr_tex.cpp | 1011 +++++++
src/gallium/drivers/r600/sfn/sfn_instr_tex.h | 166 ++
src/gallium/drivers/r600/sfn/sfn_instrfactory.cpp | 188 ++
src/gallium/drivers/r600/sfn/sfn_instrfactory.h | 34 +
.../drivers/r600/sfn/sfn_instruction_alu.cpp | 183 --
src/gallium/drivers/r600/sfn/sfn_instruction_alu.h | 142 -
.../drivers/r600/sfn/sfn_instruction_base.cpp | 187 --
.../drivers/r600/sfn/sfn_instruction_base.h | 155 -
.../drivers/r600/sfn/sfn_instruction_block.cpp | 57 -
.../drivers/r600/sfn/sfn_instruction_block.h | 82 -
.../drivers/r600/sfn/sfn_instruction_cf.cpp | 195 --
src/gallium/drivers/r600/sfn/sfn_instruction_cf.h | 142 -
.../drivers/r600/sfn/sfn_instruction_export.cpp | 341 ---
.../drivers/r600/sfn/sfn_instruction_export.h | 185 --
.../drivers/r600/sfn/sfn_instruction_fetch.cpp | 480 ---
.../drivers/r600/sfn/sfn_instruction_fetch.h | 187 --
.../drivers/r600/sfn/sfn_instruction_gds.cpp | 180 --
src/gallium/drivers/r600/sfn/sfn_instruction_gds.h | 225 --
.../drivers/r600/sfn/sfn_instruction_lds.cpp | 151 -
src/gallium/drivers/r600/sfn/sfn_instruction_lds.h | 82 -
.../drivers/r600/sfn/sfn_instruction_misc.cpp | 68 -
.../drivers/r600/sfn/sfn_instruction_misc.h | 69 -
src/gallium/drivers/r600/sfn/sfn_instruction_tex.h | 143 -
.../drivers/r600/sfn/sfn_instructionvisitor.cpp | 0
.../drivers/r600/sfn/sfn_instructionvisitor.h | 91 -
src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.h | 45 -
src/gallium/drivers/r600/sfn/sfn_liverange.cpp | 1006 -------
src/gallium/drivers/r600/sfn/sfn_liverange.h | 314 --
.../drivers/r600/sfn/sfn_liverangeevaluator.cpp | 438 +++
.../drivers/r600/sfn/sfn_liverangeevaluator.h | 23 +
.../r600/sfn/sfn_liverangeevaluator_helpers.cpp | 623 ++++
.../r600/sfn/sfn_liverangeevaluator_helpers.h | 162 +
src/gallium/drivers/r600/sfn/sfn_memorypool.cpp | 86 +
src/gallium/drivers/r600/sfn/sfn_memorypool.h | 69 +
src/gallium/drivers/r600/sfn/sfn_nir.cpp | 429 +--
src/gallium/drivers/r600/sfn/sfn_nir.h | 52 +-
.../r600/sfn/sfn_nir_legalize_image_load_store.cpp | 6 +-
.../drivers/r600/sfn/sfn_nir_lower_64bit.cpp | 393 ++-
.../drivers/r600/sfn/sfn_nir_lower_tess_io.cpp | 7 +-
...n_instruction_tex.cpp => sfn_nir_lower_tex.cpp} | 153 +-
src/gallium/drivers/r600/sfn/sfn_nir_lower_tex.h | 10 +
src/gallium/drivers/r600/sfn/sfn_optimizer.cpp | 627 ++++
src/gallium/drivers/r600/sfn/sfn_optimizer.h | 17 +
src/gallium/drivers/r600/sfn/sfn_optimizers.cpp | 12 -
src/gallium/drivers/r600/sfn/sfn_optimizers.h | 14 -
src/gallium/drivers/r600/sfn/sfn_peephole.cpp | 212 ++
src/gallium/drivers/r600/sfn/sfn_peephole.h | 13 +
src/gallium/drivers/r600/sfn/sfn_ra.cpp | 268 ++
src/gallium/drivers/r600/sfn/sfn_ra.h | 51 +
src/gallium/drivers/r600/sfn/sfn_scheduler.cpp | 890 ++++++
src/gallium/drivers/r600/sfn/sfn_scheduler.h | 13 +
src/gallium/drivers/r600/sfn/sfn_shader.cpp | 1379 +++++++++
src/gallium/drivers/r600/sfn/sfn_shader.h | 365 +++
src/gallium/drivers/r600/sfn/sfn_shader_base.cpp | 1188 --------
src/gallium/drivers/r600/sfn/sfn_shader_base.h | 231 --
.../drivers/r600/sfn/sfn_shader_compute.cpp | 112 -
src/gallium/drivers/r600/sfn/sfn_shader_compute.h | 62 -
src/gallium/drivers/r600/sfn/sfn_shader_cs.cpp | 95 +
src/gallium/drivers/r600/sfn/sfn_shader_cs.h | 39 +
.../drivers/r600/sfn/sfn_shader_fragment.cpp | 1074 -------
src/gallium/drivers/r600/sfn/sfn_shader_fragment.h | 117 -
src/gallium/drivers/r600/sfn/sfn_shader_fs.cpp | 873 ++++++
src/gallium/drivers/r600/sfn/sfn_shader_fs.h | 88 +
.../drivers/r600/sfn/sfn_shader_geometry.cpp | 343 ---
src/gallium/drivers/r600/sfn/sfn_shader_geometry.h | 81 -
src/gallium/drivers/r600/sfn/sfn_shader_gs.cpp | 370 +++
src/gallium/drivers/r600/sfn/sfn_shader_gs.h | 66 +
src/gallium/drivers/r600/sfn/sfn_shader_tcs.cpp | 108 -
src/gallium/drivers/r600/sfn/sfn_shader_tcs.h | 33 -
src/gallium/drivers/r600/sfn/sfn_shader_tess.cpp | 275 ++
src/gallium/drivers/r600/sfn/sfn_shader_tess.h | 76 +
.../drivers/r600/sfn/sfn_shader_tess_eval.cpp | 123 -
.../drivers/r600/sfn/sfn_shader_tess_eval.h | 39 -
src/gallium/drivers/r600/sfn/sfn_shader_vertex.cpp | 230 --
src/gallium/drivers/r600/sfn/sfn_shader_vertex.h | 83 -
src/gallium/drivers/r600/sfn/sfn_shader_vs.cpp | 663 +++++
src/gallium/drivers/r600/sfn/sfn_shader_vs.h | 156 +
src/gallium/drivers/r600/sfn/sfn_shaderio.cpp | 448 ---
src/gallium/drivers/r600/sfn/sfn_shaderio.h | 176 --
src/gallium/drivers/r600/sfn/sfn_value.cpp | 242 --
src/gallium/drivers/r600/sfn/sfn_value.h | 194 --
src/gallium/drivers/r600/sfn/sfn_value_gpr.cpp | 380 ---
src/gallium/drivers/r600/sfn/sfn_value_gpr.h | 208 --
src/gallium/drivers/r600/sfn/sfn_valuefactory.cpp | 959 ++++++
src/gallium/drivers/r600/sfn/sfn_valuefactory.h | 299 ++
src/gallium/drivers/r600/sfn/sfn_valuepool.cpp | 526 ----
src/gallium/drivers/r600/sfn/sfn_valuepool.h | 242 --
.../drivers/r600/sfn/sfn_vertexstageexport.cpp | 535 ----
.../drivers/r600/sfn/sfn_vertexstageexport.h | 116 -
src/gallium/drivers/r600/sfn/sfn_virtualvalues.cpp | 1072 +++++++
src/gallium/drivers/r600/sfn/sfn_virtualvalues.h | 460 +++
src/gallium/drivers/r600/sfn/tests/meson.build | 37 +
.../drivers/r600/sfn/tests/sfn_instr_test.cpp | 798 +++++
.../r600/sfn/tests/sfn_instrfromstring_test.cpp | 728 +++++
.../drivers/r600/sfn/tests/sfn_liverange_test.cpp | 217 ++
.../drivers/r600/sfn/tests/sfn_optimizer_test.cpp | 300 ++
.../r600/sfn/tests/sfn_shaderfromstring_test.cpp | 123 +
.../drivers/r600/sfn/tests/sfn_test_shaders.cpp | 3116 ++++++++++++++++++++
.../drivers/r600/sfn/tests/sfn_test_shaders.h | 115 +
.../drivers/r600/sfn/tests/sfn_value_test.cpp | 244 ++
.../r600/sfn/tests/sfn_valuefactory_test.cpp | 285 ++
140 files changed, 27319 insertions(+), 16146 deletions(-)
Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=79ca456b4837b3bc21cf9ef3c03c505c4b4909f6
More information about the mesa-commit
mailing list