<div dir="ltr">I'm honestly not sure how helpful this is. At least in all the places where this series affects our drivers, more serious changes are needed.<br><div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Mar 16, 2018 at 3:45 PM, Bas Nieuwenhuizen <span dir="ltr"><<a href="mailto:bas@basnieuwenhuizen.nl" target="_blank">bas@basnieuwenhuizen.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">FWIW<br>
<br>
Reviewed-by: Bas Nieuwenhuizen <<a href="mailto:bas@basnieuwenhuizen.nl">bas@basnieuwenhuizen.nl</a>><br>
<br>
for the series.<br>
<div class="HOEnZb"><div class="h5"><br>
On Thu, Mar 15, 2018 at 3:27 PM, Rob Clark <<a href="mailto:robdclark@gmail.com">robdclark@gmail.com</a>> wrote:<br>
> Since a fair bit of access to nir_deref_var's is just to chase down the<br>
> nir_variable for an intrinsic (or texture/sampler vars for tex<br>
> instructions), we can make the flag day slightly less painful with some<br>
> accessors that could be re-implemented for deref instruction chains.<br>
><br>
> It will still be a flag day, there are still a lot of access to the<br>
> nir_deref_var's in intrinsic instructions (and to a slightly lesser<br>
> extent, tex instructions).<br>
><br>
> Looks like amd's nir->llvm does a lot w/ deref chains.. vc4/vc5 and ir3<br>
> do not so much, other than tex related lowering pass, but I think that<br>
> should be a trivial conversion to the brave new world of deref<br>
> instructions (ie. just need a replacement for nir_deref_var_clone())<br>
><br>
> This series has light testing w/ freedreno, but it is mostly mechanical<br>
> changes. If someone wants to feed it to automated testing, I have a<br>
> branch here:<br>
><br>
> <a href="https://github.com/freedreno/mesa/commits/flag-day-prep" rel="noreferrer" target="_blank">https://github.com/freedreno/<wbr>mesa/commits/flag-day-prep</a><br>
><br>
> Rob Clark (9):<br>
> nir: start to abstract deref chains/instructions<br>
> freedreno/ir3: use nir_intrinsic_var() accessor<br>
> amd: use nir_intrinsic_var() accessor<br>
> mesa/st: use nir_intrinsic_var() accessor<br>
> intel: use nir_intrinsic_var() accessor<br>
> nir: use nir_intrinsic_var() accessor<br>
> nir: use nir_tex_*_var() accessors<br>
> intel: use nir_tex_*_var() accessors<br>
> amd: use nir_tex_*_var() accessors<br>
><br>
> src/amd/common/ac_nir_to_llvm.<wbr>c | 76 ++++++++++++----------<br>
> src/amd/vulkan/radv_shader_<wbr>info.c | 22 ++++---<br>
> src/compiler/nir/nir.h | 34 ++++++++++<br>
> src/compiler/nir/nir_gather_<wbr>info.c | 2 +-<br>
> src/compiler/nir/nir_inline_<wbr>functions.c | 6 +-<br>
> src/compiler/nir/nir_instr_<wbr>set.c | 2 +-<br>
> src/compiler/nir/nir_linking_<wbr>helpers.c | 10 ++-<br>
> src/compiler/nir/nir_lower_<wbr>alpha_test.c | 2 +-<br>
> src/compiler/nir/nir_lower_<wbr>atomics.c | 11 ++--<br>
> src/compiler/nir/nir_lower_<wbr>clamp_color_outputs.c | 2 +-<br>
> src/compiler/nir/nir_lower_<wbr>global_vars_to_local.c | 2 +-<br>
> src/compiler/nir/nir_lower_<wbr>indirect_derefs.c | 4 +-<br>
> src/compiler/nir/nir_lower_io.<wbr>c | 10 +--<br>
> src/compiler/nir/nir_lower_io_<wbr>arrays_to_elements.c | 4 +-<br>
> src/compiler/nir/nir_lower_io_<wbr>to_scalar.c | 2 +-<br>
> src/compiler/nir/nir_lower_io_<wbr>types.c | 2 +-<br>
> src/compiler/nir/nir_lower_<wbr>locals_to_regs.c | 4 +-<br>
> src/compiler/nir/nir_lower_<wbr>phis_to_scalar.c | 9 +--<br>
> src/compiler/nir/nir_lower_<wbr>samplers.c | 6 +-<br>
> src/compiler/nir/nir_lower_<wbr>system_values.c | 2 +-<br>
> src/compiler/nir/nir_lower_<wbr>wpos_ytransform.c | 4 +-<br>
> src/compiler/nir/nir_opt_<wbr>peephole_select.c | 2 +-<br>
> src/compiler/nir/nir_<wbr>propagate_invariant.c | 8 +--<br>
> src/compiler/nir/nir_remove_<wbr>dead_variables.c | 25 ++++---<br>
> src/compiler/nir/nir_validate.<wbr>c | 22 ++++---<br>
> .../drivers/freedreno/ir3/ir3_<wbr>compiler_nir.c | 8 +--<br>
> src/gallium/drivers/freedreno/<wbr>ir3/ir3_nir.c | 2 +-<br>
> src/gallium/drivers/radeonsi/<wbr>si_shader_nir.c | 4 +-<br>
> src/intel/compiler/brw_fs_nir.<wbr>cpp | 4 +-<br>
> src/intel/vulkan/anv_nir_<wbr>apply_pipeline_layout.c | 20 +++---<br>
> src/intel/vulkan/anv_nir_<wbr>lower_input_attachments.c | 2 +-<br>
> src/intel/vulkan/anv_nir_<wbr>lower_ycbcr_textures.c | 2 +-<br>
> src/mesa/state_tracker/st_nir_<wbr>lower_builtin.c | 2 +-<br>
> 33 files changed, 184 insertions(+), 133 deletions(-)<br>
><br>
> --<br>
> 2.14.3<br>
><br>
</div></div></blockquote></div><br></div></div></div>