/* TODO: Could be more granular if we had nir_var_mem_image. */
       if (nir_intrinsic_memory_modes(instr) & (nir_var_mem_ubo |
                                                nir_var_mem_ssbo |
-                                               nir_var_uniform)) {
+                                               nir_var_uniform |
+                                               nir_var_mem_global)) {
          state->buffer_barriers = true;
          state->image_barriers = true;
       }
 
    nir_foreach_instr_safe(instr, block) {
       if (instr->type == nir_instr_type_call) {
          combine_stores_with_modes(state, nir_var_shader_out |
-                                              nir_var_shader_temp |
-                                              nir_var_function_temp |
-                                              nir_var_mem_ssbo |
-                                              nir_var_mem_shared);
+                                          nir_var_shader_temp |
+                                          nir_var_function_temp |
+                                          nir_var_mem_ssbo |
+                                          nir_var_mem_shared |
+                                          nir_var_mem_global);
          continue;
       }
 
       case nir_intrinsic_group_memory_barrier:
       case nir_intrinsic_memory_barrier:
          combine_stores_with_modes(state, nir_var_shader_out |
-                                              nir_var_mem_ssbo |
-                                              nir_var_mem_shared);
+                                          nir_var_mem_ssbo |
+                                          nir_var_mem_shared |
+                                          nir_var_mem_global);
          break;
 
       case nir_intrinsic_memory_barrier_buffer:
-         combine_stores_with_modes(state, nir_var_mem_ssbo);
+         combine_stores_with_modes(state, nir_var_mem_ssbo |
+                                          nir_var_mem_global);
          break;
 
       case nir_intrinsic_memory_barrier_shared:
 
                               nir_var_shader_temp |
                               nir_var_function_temp |
                               nir_var_mem_ssbo |
-                              nir_var_mem_shared;
+                              nir_var_mem_shared |
+                              nir_var_mem_global;
             continue;
          }
 
          case nir_intrinsic_memory_barrier:
             written->modes |= nir_var_shader_out |
                               nir_var_mem_ssbo |
-                              nir_var_mem_shared;
+                              nir_var_mem_shared |
+                              nir_var_mem_global;
             break;
 
          case nir_intrinsic_scoped_memory_barrier:
                                          nir_var_shader_temp |
                                          nir_var_function_temp |
                                          nir_var_mem_ssbo |
-                                         nir_var_mem_shared);
+                                         nir_var_mem_shared |
+                                         nir_var_mem_global);
          if (debug) dump_copy_entries(copies);
          continue;
       }
 
          apply_barrier_for_modes(copies, nir_var_shader_out |
                                          nir_var_mem_ssbo |
-                                         nir_var_mem_shared);
+                                         nir_var_mem_shared |
+                                         nir_var_mem_global);
          break;
 
       case nir_intrinsic_memory_barrier_buffer:
          if (debug) dump_instr(instr);
 
-         apply_barrier_for_modes(copies, nir_var_mem_ssbo);
+         apply_barrier_for_modes(copies, nir_var_mem_ssbo |
+                                         nir_var_mem_global);
          break;
 
       case nir_intrinsic_memory_barrier_shared:
 
                                                 nir_var_shader_temp |
                                                 nir_var_function_temp |
                                                 nir_var_mem_ssbo |
-                                                nir_var_mem_shared);
+                                                nir_var_mem_shared |
+                                                nir_var_mem_global);
          continue;
       }
 
       case nir_intrinsic_memory_barrier: {
          clear_unused_for_modes(&unused_writes, nir_var_shader_out |
                                                 nir_var_mem_ssbo |
-                                                nir_var_mem_shared);
+                                                nir_var_mem_shared |
+                                                nir_var_mem_global);
          break;
       }
 
       case nir_intrinsic_memory_barrier_buffer:
-         clear_unused_for_modes(&unused_writes, nir_var_mem_ssbo);
+         clear_unused_for_modes(&unused_writes, nir_var_mem_ssbo |
+                                                nir_var_mem_global);
          break;
 
       case nir_intrinsic_memory_barrier_shared: