r600/sfn: Add a basic nir shader backend
authorGert Wollny <gw.fossdev@gmail.com>
Sun, 1 Dec 2019 19:38:07 +0000 (20:38 +0100)
committerMarge Bot <eric+marge@anholt.net>
Mon, 10 Feb 2020 19:09:08 +0000 (19:09 +0000)
commitf718ac62688b555a933c7112f656944288d04edb
tree618add486794d43e1efe04e8668e4196e5e9c1ef
parent295be0e8dfcc28366bcd193c44abc7913d5132d8
r600/sfn: Add a basic nir shader backend

This commit adds support for vertex and fragment shaders from NIR, and
support for most TEX and ALU instructions.

Thanks Dave Airlied for adding support for a number of ALU instructions.

v2: fix compilation with gcc-6
v3: rebase: use mesa/core glsl_type_size function

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3225>
47 files changed:
src/gallium/drivers/r600/Makefile.sources
src/gallium/drivers/r600/meson.build
src/gallium/drivers/r600/sfn/sfn_alu_defines.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_alu_defines.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_callstack.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_callstack.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_conditionaljumptracker.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_conditionaljumptracker.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_debug.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_debug.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_defines.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_emitaluinstruction.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_emitaluinstruction.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_emitinstruction.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_emitinstruction.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_emittexinstruction.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_emittexinstruction.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_alu.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_alu.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_base.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_base.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_cf.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_cf.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_export.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_export.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_fetch.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_fetch.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_tex.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_instruction_tex.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_ir_to_assembly.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_nir.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_nir.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_shader_base.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_shader_base.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_shader_fragment.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_shader_fragment.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_shader_vertex.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_shader_vertex.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_shaderio.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_shaderio.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_value.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_value.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_value_gpr.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_value_gpr.h [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_valuepool.cpp [new file with mode: 0644]
src/gallium/drivers/r600/sfn/sfn_valuepool.h [new file with mode: 0644]