[Mesa-dev] [PATCH v8 00/33] Nouveau NIR support

Karol Herbst kherbst at redhat.com
Fri Jun 29 22:31:47 UTC 2018


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



More information about the mesa-dev mailing list