[Mesa-dev] [PATCH v2 0/9] nir: Remove the *_indirect form of input/output

Jason Ekstrand jason at jlekstrand.net
Fri Dec 4 15:11:54 PST 2015


This is a second crack at my attempt to get rid of the *_indirect for of
the input/output intrinsics.  The primary change is that we decided to keep
the const_index[0] base offset for all of the load/store intrinsics that
operate on opaque memory.  Along with this, the base offset is now much
better defined:  it is always the driver_location of the actual variable.
If, for instance, you access the second column of a mat4, const_index[0] is
the location of the whole mat4 and the offset source is load_const(2).

Thanks to keeping the base offset arround, this series is a lot more
straightforward than the first version.  I think the chances are
substantially higher that I didn't break vc4 or ir3.

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

Jason Ekstrand (9):
  vc4: Do all uniform loads with byte offsets
  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            |  51 +++----
 .../drivers/freedreno/ir3/ir3_compiler_nir.c       |  79 ++++++-----
 src/gallium/drivers/vc4/vc4_nir_lower_io.c         |  33 ++---
 src/gallium/drivers/vc4/vc4_program.c              |  28 ++--
 src/glsl/nir/glsl_to_nir.cpp                       |  47 +------
 src/glsl/nir/nir.h                                 |   2 +-
 src/glsl/nir/nir_intrinsics.h                      |  81 +++++------
 src/glsl/nir/nir_lower_io.c                        | 111 ++++++---------
 src/glsl/nir/nir_lower_phis_to_scalar.c            |   4 -
 src/glsl/nir/nir_print.c                           |   9 +-
 src/mesa/drivers/dri/i965/brw_fs.h                 |   2 +-
 src/mesa/drivers/dri/i965/brw_fs_nir.cpp           | 153 ++++++++++-----------
 src/mesa/drivers/dri/i965/brw_nir.c                |  45 ++++--
 src/mesa/drivers/dri/i965/brw_vec4_gs_nir.cpp      |   7 +-
 src/mesa/drivers/dri/i965/brw_vec4_nir.cpp         |  91 +++++-------
 15 files changed, 340 insertions(+), 403 deletions(-)

-- 
2.5.0.400.gff86faf



More information about the mesa-dev mailing list