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

Jason Ekstrand jason at jlekstrand.net
Wed Apr 22 15:41:07 PDT 2015


On Wed, Apr 22, 2015 at 3:34 PM, Connor Abbott <cwabbott0 at gmail.com> wrote:
> Except for the one minor comment on patch 6

Fixed locally.

> , the series (including
> patches 13 and 14) is
>
> Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>

Thanks!

> 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