[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