[Mesa-dev] [FLAG-DAY-PREP 0/9] nir: accessors for deref vars

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Fri Mar 16 22:45:19 UTC 2018


FWIW

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

for the series.

On Thu, Mar 15, 2018 at 3:27 PM, Rob Clark <robdclark at gmail.com> wrote:
> Since a fair bit of access to nir_deref_var's is just to chase down the
> nir_variable for an intrinsic (or texture/sampler vars for tex
> instructions), we can make the flag day slightly less painful with some
> accessors that could be re-implemented for deref instruction chains.
>
> It will still be a flag day, there are still a lot of access to the
> nir_deref_var's in intrinsic instructions (and to a slightly lesser
> extent, tex instructions).
>
> Looks like amd's nir->llvm does a lot w/ deref chains.. vc4/vc5 and ir3
> do not so much, other than tex related lowering pass, but I think that
> should be a trivial conversion to the brave new world of deref
> instructions (ie. just need a replacement for nir_deref_var_clone())
>
> This series has light testing w/ freedreno, but it is mostly mechanical
> changes.  If someone wants to feed it to automated testing, I have a
> branch here:
>
>   https://github.com/freedreno/mesa/commits/flag-day-prep
>
> Rob Clark (9):
>   nir: start to abstract deref chains/instructions
>   freedreno/ir3: use nir_intrinsic_var() accessor
>   amd: use nir_intrinsic_var() accessor
>   mesa/st: use nir_intrinsic_var() accessor
>   intel: use nir_intrinsic_var() accessor
>   nir: use nir_intrinsic_var() accessor
>   nir: use nir_tex_*_var() accessors
>   intel: use nir_tex_*_var() accessors
>   amd: use nir_tex_*_var() accessors
>
>  src/amd/common/ac_nir_to_llvm.c                    | 76 ++++++++++++----------
>  src/amd/vulkan/radv_shader_info.c                  | 22 ++++---
>  src/compiler/nir/nir.h                             | 34 ++++++++++
>  src/compiler/nir/nir_gather_info.c                 |  2 +-
>  src/compiler/nir/nir_inline_functions.c            |  6 +-
>  src/compiler/nir/nir_instr_set.c                   |  2 +-
>  src/compiler/nir/nir_linking_helpers.c             | 10 ++-
>  src/compiler/nir/nir_lower_alpha_test.c            |  2 +-
>  src/compiler/nir/nir_lower_atomics.c               | 11 ++--
>  src/compiler/nir/nir_lower_clamp_color_outputs.c   |  2 +-
>  src/compiler/nir/nir_lower_global_vars_to_local.c  |  2 +-
>  src/compiler/nir/nir_lower_indirect_derefs.c       |  4 +-
>  src/compiler/nir/nir_lower_io.c                    | 10 +--
>  src/compiler/nir/nir_lower_io_arrays_to_elements.c |  4 +-
>  src/compiler/nir/nir_lower_io_to_scalar.c          |  2 +-
>  src/compiler/nir/nir_lower_io_types.c              |  2 +-
>  src/compiler/nir/nir_lower_locals_to_regs.c        |  4 +-
>  src/compiler/nir/nir_lower_phis_to_scalar.c        |  9 +--
>  src/compiler/nir/nir_lower_samplers.c              |  6 +-
>  src/compiler/nir/nir_lower_system_values.c         |  2 +-
>  src/compiler/nir/nir_lower_wpos_ytransform.c       |  4 +-
>  src/compiler/nir/nir_opt_peephole_select.c         |  2 +-
>  src/compiler/nir/nir_propagate_invariant.c         |  8 +--
>  src/compiler/nir/nir_remove_dead_variables.c       | 25 ++++---
>  src/compiler/nir/nir_validate.c                    | 22 ++++---
>  .../drivers/freedreno/ir3/ir3_compiler_nir.c       |  8 +--
>  src/gallium/drivers/freedreno/ir3/ir3_nir.c        |  2 +-
>  src/gallium/drivers/radeonsi/si_shader_nir.c       |  4 +-
>  src/intel/compiler/brw_fs_nir.cpp                  |  4 +-
>  src/intel/vulkan/anv_nir_apply_pipeline_layout.c   | 20 +++---
>  src/intel/vulkan/anv_nir_lower_input_attachments.c |  2 +-
>  src/intel/vulkan/anv_nir_lower_ycbcr_textures.c    |  2 +-
>  src/mesa/state_tracker/st_nir_lower_builtin.c      |  2 +-
>  33 files changed, 184 insertions(+), 133 deletions(-)
>
> --
> 2.14.3
>


More information about the mesa-dev mailing list