Patches 1 and 2 are Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>
As I commented on IRC, I'd recommend we also review and land my emit pointers on-the-fly patch. I don't know that it's strictly necessary but I do think it's better. On Sun, Nov 18, 2018 at 9:57 PM Dave Airlie <airl...@gmail.com> wrote: > From: Dave Airlie <airl...@redhat.com> > > I posted a load of hacks before to do this, Jason suggested this, > just check the deref mode, not the variable mode and delay getting > the variable until we know the type. > > avoids crashes when derefing shared memory pointers. > --- > src/compiler/nir/nir_gather_info.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/src/compiler/nir/nir_gather_info.c > b/src/compiler/nir/nir_gather_info.c > index 15d38f036b5..7eaa4c27c1f 100644 > --- a/src/compiler/nir/nir_gather_info.c > +++ b/src/compiler/nir/nir_gather_info.c > @@ -210,10 +210,9 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, > nir_shader *shader, > case nir_intrinsic_load_deref: > case nir_intrinsic_store_deref:{ > nir_deref_instr *deref = nir_src_as_deref(instr->src[0]); > - nir_variable *var = nir_deref_instr_get_variable(deref); > - > - if (var->data.mode == nir_var_shader_in || > - var->data.mode == nir_var_shader_out) { > + if (deref->mode == nir_var_shader_in || > + deref->mode == nir_var_shader_out) { > + nir_variable *var = nir_deref_instr_get_variable(deref); > bool is_output_read = false; > if (var->data.mode == nir_var_shader_out && > instr->intrinsic == nir_intrinsic_load_deref) > -- > 2.17.2 > > _______________________________________________ > 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