On Sun, Mar 4, 2018 at 8:09 PM, Timothy Arceri <tarc...@itsqueeze.com> wrote: > Fixes piglit tests: > tests/spec/glsl-1.50/execution/variable-indexing/gs-input-array-vec3-index-rd.shader_test > tests/spec/glsl-1.50/execution/geometry/max-input-components.shader_test > --- > src/gallium/drivers/radeonsi/si_compute.c | 2 +- > src/gallium/drivers/radeonsi/si_shader.h | 2 +- > src/gallium/drivers/radeonsi/si_shader_nir.c | 4 +++- > src/gallium/drivers/radeonsi/si_state_shaders.c | 2 +- > 4 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/src/gallium/drivers/radeonsi/si_compute.c > b/src/gallium/drivers/radeonsi/si_compute.c > index e9b6127115..d135a09add 100644 > --- a/src/gallium/drivers/radeonsi/si_compute.c > +++ b/src/gallium/drivers/radeonsi/si_compute.c > @@ -107,7 +107,7 @@ static void si_create_compute_state_async(void *job, int > thread_index) > sel.nir = program->ir.nir; > > si_nir_scan_shader(sel.nir, &sel.info); > - si_lower_nir(&sel); > + si_lower_nir(&sel, program->compiler_ctx_state.chip_class);
program->screen->chip_class, and patch 2 can be dropped. > } > > > diff --git a/src/gallium/drivers/radeonsi/si_shader.h > b/src/gallium/drivers/radeonsi/si_shader.h > index 28f6e6bc4e..23f9d20e19 100644 > --- a/src/gallium/drivers/radeonsi/si_shader.h > +++ b/src/gallium/drivers/radeonsi/si_shader.h > @@ -674,7 +674,7 @@ void si_nir_scan_shader(const struct nir_shader *nir, > void si_nir_scan_tess_ctrl(const struct nir_shader *nir, > const struct tgsi_shader_info *info, > struct tgsi_tessctrl_info *out); > -void si_lower_nir(struct si_shader_selector *sel); > +void si_lower_nir(struct si_shader_selector *sel, enum chip_class > chip_class); > > /* Inline helpers. */ > > diff --git a/src/gallium/drivers/radeonsi/si_shader_nir.c > b/src/gallium/drivers/radeonsi/si_shader_nir.c > index fc709d8546..3d538be4cf 100644 > --- a/src/gallium/drivers/radeonsi/si_shader_nir.c > +++ b/src/gallium/drivers/radeonsi/si_shader_nir.c > @@ -665,7 +665,7 @@ void si_nir_scan_shader(const struct nir_shader *nir, > * selector is created. > */ > void > -si_lower_nir(struct si_shader_selector* sel) > +si_lower_nir(struct si_shader_selector* sel, enum chip_class chip_class) > { > /* Adjust the driver location of inputs and outputs. The state tracker > * interprets them as slots, while the ac/nir backend interprets them > @@ -715,6 +715,8 @@ si_lower_nir(struct si_shader_selector* sel) > }; > NIR_PASS_V(sel->nir, nir_lower_subgroups, &subgroups_options); > > + ac_lower_indirect_derefs(sel->nir, chip_class); With sel->screen->chip_class, si_lower_nir doesn't need the chip_class parameter. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev