[Mesa-dev] [PATCH 00/10] nir: Get rid of the *_indirect load/store intrinsics

Jason Ekstrand jason at jlekstrand.net
Wed Nov 25 20:55:52 PST 2015


This has been bothering me for quite some time.  We have both regular and
*_indirect forms of all of the load/store intrinsics.  Unfortunately, these
lead to large number of unneeded special-cases.  Another downside is that
core NIR has no way of turning _indirect load/store operations into their
direct form when the indirect is a constant.

All but the last two patches will have to be squashed into one commit
before pushing.  This includes patches to tgsi_to_nir, ir3, and vc4.  It
would be much appreciated if the owners of those pieces of code would
review and test as quickly as possible.  If they're wrong (they probably
are), working patches would be appreciated.

Cc: Eric Anholt <eric at anholt.net>
Cc: Rob Clark <robclark at robdclark@gmail.com>

Jason Ekstrand (10):
  nir/lower_io: Pass the builder and type_size into get_io_offset
  i965/vec4: Get rid of the nir_inputs array
  nir: Get rid of *_indirect variants of input/output load/store
    intrinsics
  nir/glsl: Stop handling UBO/SSBO load/stores differently depending on
    indirect
  nir/lower_io: Get rid of load/store_foo_indirect
  i965/fs: Get rid of load/store_foo_indirect
  i965/vec4: Get rid of load/store_foo_indirect
  tgsi_to_nir: Get rid of load/store_foo_indirect
  ir3/nir: Use the new unified io intrinsics
  vc4/nir: Use the new unified io intrinsics

 src/gallium/auxiliary/nir/tgsi_to_nir.c            |  48 +++----
 .../drivers/freedreno/ir3/ir3_compiler_nir.c       |  75 ++++++-----
 src/gallium/drivers/vc4/vc4_nir_lower_io.c         |  20 +--
 src/gallium/drivers/vc4/vc4_program.c              |  25 ++--
 src/glsl/nir/glsl_to_nir.cpp                       |  47 +------
 src/glsl/nir/nir.h                                 |   2 +-
 src/glsl/nir/nir_intrinsics.h                      |  64 +++++----
 src/glsl/nir/nir_lower_io.c                        | 121 +++++++----------
 src/glsl/nir/nir_lower_phis_to_scalar.c            |   4 -
 src/glsl/nir/nir_print.c                           |  19 ++-
 src/mesa/drivers/dri/i965/brw_fs.h                 |   3 +-
 src/mesa/drivers/dri/i965/brw_fs_nir.cpp           | 145 +++++++++------------
 src/mesa/drivers/dri/i965/brw_nir.c                |  60 +++++----
 src/mesa/drivers/dri/i965/brw_vec4.h               |   2 -
 src/mesa/drivers/dri/i965/brw_vec4_gs_nir.cpp      |   8 +-
 src/mesa/drivers/dri/i965/brw_vec4_nir.cpp         | 119 ++++++-----------
 16 files changed, 331 insertions(+), 431 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list