[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