Reviewed-by: Bas Nieuwenhuizen <b...@basnieuwenhuizen.nl>
On Thu, Jul 6, 2017 at 9:50 PM, Connor Abbott <conn...@valvesoftware.com> wrote: > From: Connor Abbott <cwabbo...@gmail.com> > > This makes the radv shader pipeline much closer to brw_preprocess_nir(). > The main changes are: > > - Now we call nir_split_var_copies(), which is necessary for > nir_lower_var_copies() to work correctly. The SPIR-V frontend never > generates variable copies, so we didn't notice this, but this will > prevent regressions after the next commit that turns on > nir_lower_io_to_temporaries, which does use copies. We add a call to > radv_optimize() after nir_split_var_copies() but before lowering var > copies and other stuff so that NIR optimization passes have a chance to > work on the un-lowered form. This matches i965. > - We now call nir_lower_load_const_to_scalar(), which should provide > more optimization opportunities for NIR. > - We now get rid of local variables after optimization is done, in case > an optimization removed one. > --- > src/amd/vulkan/radv_pipeline.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c > index 49610a1..237e146 100644 > --- a/src/amd/vulkan/radv_pipeline.c > +++ b/src/amd/vulkan/radv_pipeline.c > @@ -284,12 +284,20 @@ radv_shader_compile_to_nir(struct radv_device *device, > > nir_lower_tex(nir, &tex_options); > > - nir_lower_vars_to_ssa(nir); > - nir_lower_var_copies(nir); > nir_lower_global_vars_to_local(nir); > - nir_remove_dead_variables(nir, nir_var_local); > + > + nir_split_var_copies(nir); > + > radv_optimize_nir(nir); > > + nir_lower_load_const_to_scalar(nir); > + > + nir_lower_var_copies(nir); > + > + radv_optimize_nir(nir); > + > + nir_remove_dead_variables(nir, nir_var_local); > + > if (dump) > nir_print_shader(nir, stderr); > > -- > 2.9.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev