[Mesa-dev] [PATCH v6 00/34] Nouveau NIR support

Karol Herbst kherbst at redhat.com
Mon Mar 19 15:43:53 UTC 2018


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



More information about the mesa-dev mailing list