diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/nir/nir_deref.c | 7 |
1 files changed, 6 insertions, 1 deletions
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, |