In order to be able to use derefs for UBOs and SSBOs and actually pass them through optimizations, various things need to be fixed up to properly handle casts. Because casts are only going to be allowed on UBOs, SSBOs, and maybe shared variables at present, most of the time it's as simple as making pass bail a tiny bit earlier by checking the deref mode before looking for the variable.
Cc: Timothy Arceri <tarc...@itsqueeze.com> Jason Ekstrand (7): nir/propagate_invariant: Skip unknown vars nir/linking_helpers: Look at derefs for modes nir/lower_io_arrays_to_elements: Look at derefs for modes nir/lower_io_to_scalar: Look at derefs for modes nir/lower_wpos_center: Look at derefs for modes nir/copy_prop_vars: Get modes directly from derefs nir/dead_write_vars: Get modes directly from derefs src/compiler/nir/nir_linking_helpers.c | 23 +++++++++---------- .../nir/nir_lower_io_arrays_to_elements.c | 13 +++++++---- src/compiler/nir/nir_lower_io_to_scalar.c | 9 +++++--- src/compiler/nir/nir_lower_wpos_center.c | 6 +++-- src/compiler/nir/nir_opt_copy_prop_vars.c | 8 ++----- src/compiler/nir/nir_opt_dead_write_vars.c | 3 +-- src/compiler/nir/nir_propagate_invariant.c | 2 +- 7 files changed, 33 insertions(+), 31 deletions(-) -- 2.19.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev