I mainly cleaned the series and implemented missing features or fixed stuff: * converted to C style comments * added nv50 support * added interpolateAt * fixed Arrays of Images * fixed Images on pre Maxwell GPUs * disable MS Images when using NIR
Piglit pass rates are pretty good. With Fermi/Kepler1 some spilling bugs are hit. And with nv50 there are minor issues with gl_PointCoord. But because NIR support is hidden behind an envvar I think it is fine to fix that up in follow ups. On Nouveau we support tg4 with for constant offsets as well, but this I want to mainline in a seperated series, because it requires changes to NIR itself. Support for bindless textures are missing, because it isn't support in NIR yet same goes for MS Images. Connor Abbott (1): nv50/ir/ra: Fix copying compound for moves Karol Herbst (33): st/glsl_to_nir: run lower_output_reads on !PIPE_CAP_TGSI_CAN_READ_OUTPUTS nvir: print the shader type when dumping headers nvir: move common converter code in base class nvir: add lowering helper nv50,nvc0: add support for nir nvc0: add env var to make nir default 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 CFG handling 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 nir_intrinsic_load_(interpolated_)input 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/Makefile.sources | 5 + src/gallium/drivers/nouveau/codegen/nv50_ir.cpp | 3 + src/gallium/drivers/nouveau/codegen/nv50_ir.h | 1 + .../nouveau/codegen/nv50_ir_from_common.cpp | 107 + .../drivers/nouveau/codegen/nv50_ir_from_common.h | 58 + .../drivers/nouveau/codegen/nv50_ir_from_nir.cpp | 3088 ++++++++++++++++++++ .../drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 106 +- .../nouveau/codegen/nv50_ir_lowering_helper.cpp | 275 ++ .../nouveau/codegen/nv50_ir_lowering_helper.h | 53 + src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 60 +- src/gallium/drivers/nouveau/meson.build | 13 +- src/gallium/drivers/nouveau/nouveau_screen.c | 5 + src/gallium/drivers/nouveau/nouveau_screen.h | 2 + src/gallium/drivers/nouveau/nv50/nv50_program.c | 19 +- src/gallium/drivers/nouveau/nv50/nv50_screen.c | 44 +- src/gallium/drivers/nouveau/nv50/nv50_state.c | 31 +- src/gallium/drivers/nouveau/nvc0/nvc0_program.c | 19 +- src/gallium/drivers/nouveau/nvc0/nvc0_screen.c | 61 +- src/gallium/drivers/nouveau/nvc0/nvc0_state.c | 27 +- src/mesa/state_tracker/st_glsl_to_nir.cpp | 6 + 20 files changed, 3838 insertions(+), 145 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.14.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev