I think this is finally getting complete. There are a handful of piglit and CTS regressions, but those are caused by issues in common nir and gallium code.
Some features remain disabled like bindless textures, because there is more ground work needed to be able to properly do it with nir. Changes since v7: * port images to derefs * remove use of C++11 features * add more passes the code implicitly depends on * add changes for reading out sample locations * fix loading 8 and 16 bit constants * minor cleanups and bugfixes Connor Abbott (1): nv50/ir/ra: Fix copying compound for moves Karol Herbst (32): nvc0: print the shader type when dumping headers nvir: move common converter code in base class nvir: add lowering helper nouveau: add support for nir nouveau: add env var to make nir default nouveau: fix nir and TGSI shader cache collision nvir/nir: run some passes to make the conversion easier nvir/nir: track defs and provide easy access functions nvir/nir: add nir type helper functions nvir/nir: run assignSlots nvir/nir: add loadFrom and storeTo helpler nvir/nir: parse NIR shader info nvir/nir: implement nir_load_const_instr nvir/nir: add skeleton for nir_intrinsic_instr nvir/nir: implement nir_alu_instr handling nvir/nir: implement nir_intrinsic_load_uniform nvir/nir: implement nir_intrinsic_store_(per_vertex_)output nvir/nir: implement load_(interpolated_)input/output nvir/nir: implement intrinsic_discard(_if) nvir/nir: implement loading system values nvir/nir: implement nir_ssa_undef_instr nvir/nir: implement nir_instr_type_tex nvir/nir: add getOperation for intrinsics nvir/nir: implement vote and ballot nvir/nir: implement variable indexing nvir/nir: implement geometry shader nir_intrinsics nvir/nir: implement nir_intrinsic_load_ubo nvir/nir: implement ssbo intrinsics nvir/nir: implement images nvir/nir: add memory barriers nvir/nir: implement load_per_vertex_output nvir/nir: implement intrinsic shader_clock src/gallium/drivers/nouveau/Automake.inc | 3 + src/gallium/drivers/nouveau/Makefile.am | 5 + src/gallium/drivers/nouveau/Makefile.sources | 5 + .../drivers/nouveau/codegen/nv50_ir.cpp | 3 + src/gallium/drivers/nouveau/codegen/nv50_ir.h | 1 + .../nouveau/codegen/nv50_ir_from_common.cpp | 107 + .../nouveau/codegen/nv50_ir_from_common.h | 58 + .../nouveau/codegen/nv50_ir_from_nir.cpp | 3144 +++++++++++++++++ .../nouveau/codegen/nv50_ir_from_tgsi.cpp | 106 +- .../codegen/nv50_ir_lowering_helper.cpp | 275 ++ .../nouveau/codegen/nv50_ir_lowering_helper.h | 53 + .../drivers/nouveau/codegen/nv50_ir_ra.cpp | 60 +- src/gallium/drivers/nouveau/meson.build | 13 +- src/gallium/drivers/nouveau/nouveau_screen.c | 11 +- src/gallium/drivers/nouveau/nouveau_screen.h | 2 + .../drivers/nouveau/nv50/nv50_program.c | 19 +- .../drivers/nouveau/nv50/nv50_screen.c | 44 +- src/gallium/drivers/nouveau/nv50/nv50_state.c | 35 +- .../drivers/nouveau/nvc0/nvc0_program.c | 19 +- .../drivers/nouveau/nvc0/nvc0_screen.c | 61 +- src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 31 +- 21 files changed, 3907 insertions(+), 148 deletions(-) create mode 100644 src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.cpp create mode 100644 src/gallium/drivers/nouveau/codegen/nv50_ir_from_common.h create mode 100644 src/gallium/drivers/nouveau/codegen/nv50_ir_from_nir.cpp create mode 100644 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.cpp create mode 100644 src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_helper.h -- 2.17.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev