From 9e34781aef3611bfcc3843694576c5972f0710fb Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 23 Jan 2019 16:47:46 -0600 Subject: [PATCH] nir: Allow SSBOs and global to alias Reviewed-by: Bas Nieuwenhuizen --- src/compiler/nir/nir_deref.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_deref.c b/src/compiler/nir/nir_deref.c index 513e8242d7c..2f5fda643ca 100644 --- a/src/compiler/nir/nir_deref.c +++ b/src/compiler/nir/nir_deref.c @@ -293,7 +293,12 @@ nir_fixup_deref_modes(nir_shader *shader) static bool modes_may_alias(nir_variable_mode a, nir_variable_mode b) { - /* Two pointers can only alias if they have the same mode. + /* Generic pointers can alias with SSBOs */ + if ((a == nir_var_mem_ssbo || a == nir_var_mem_global) && + (b == nir_var_mem_ssbo || b == nir_var_mem_global)) + return true; + + /* In the general case, pointers can only alias if they have the same mode. * * NOTE: In future, with things like OpenCL generic pointers, this may not * be true and will have to be re-evaluated. However, with graphics only, -- 2.30.2