[Mesa-dev] [PATCH 00/12] nir: Various indirect variable use fixes

Connor Abbott cwabbott0 at gmail.com
Wed Apr 22 15:34:15 PDT 2015


Except for the one minor comment on patch 6, the series (including
patches 13 and 14) is

Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>

On Fri, Apr 10, 2015 at 8:48 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> Right now, most of the code to handle indirect dereferences of variables is
> dead.  However, I have a patch series (which I haven't cleaned up yet) that
> makes it very much alive for the i965 backend.  While working on this, I
> found a number of bugs in NIR's handling of indirect references.  All in
> all, it's not nearly as bad as it could have been given that it hasn't ever
> been tested.
>
> While this series does not make the code alive in i965, it does fix all but
> one of the NIR bugs I found by turning it on in i965.  Together with my
> series to enable actual indirects in the i965 scalar backend, there is now
> only one piglit regressions on HSW.  Hopefully, I'll send a patch 13/12 on
> Monday with the fix.  This series, on top of my WIP i965 patches, can be
> found in my review/nir-indirect-fixes branch on freedesktop.org:
>
> http://cgit.freedesktop.org/~jekstrand/mesa/log/?h=review/nir-indirect-fixes
>
> Jason Ekstrand (12):
>   nir/lower_vars_to_ssa: Actually look for indirects when determining
>     aliasing
>   nir: Refactor tex_instr_dest_size to use a switch statement
>   nir/tex: Use the correct return size for query_levels and lod
>   nir/print: Print the closing paren on load_const instructions
>   i965/nir: Use the correct offsets when handling register indirects
>   nir/lower_vars_to_ssa: Pass around the nir_shader instead of a void
>     mem_ctx
>   nir: Move get_const_initializer_load from vars_to_ssa to NIR core
>   nir/types: Make glsl_get_length smarter
>   nir: Add a simple growing array data structure
>   nir/locals_to_regs: Pass around the nir_shader rather than a void *
>     mem_ctx
>   nir/locals_to_regs: Initialize registers with constant initializers
>   nir/locals_to_regs: Hanadle indirect accesses of length-1 arrays
>
>  src/glsl/nir/nir.c                       |  60 +++++++++++++
>  src/glsl/nir/nir.h                       |  17 +++-
>  src/glsl/nir/nir_array.h                 |  96 ++++++++++++++++++++
>  src/glsl/nir/nir_lower_locals_to_regs.c  | 148 ++++++++++++++++++++++++++-----
>  src/glsl/nir/nir_lower_var_copies.c      |  24 +----
>  src/glsl/nir/nir_lower_vars_to_ssa.c     | 120 +++++--------------------
>  src/glsl/nir/nir_print.c                 |   2 +
>  src/glsl/nir/nir_types.cpp               |  16 +++-
>  src/mesa/drivers/dri/i965/brw_fs_nir.cpp |  54 +++++------
>  9 files changed, 363 insertions(+), 174 deletions(-)
>  create mode 100644 src/glsl/nir/nir_array.h
>
> --
> 2.3.5
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list