Lines Matching refs:access
26 /* This pass optimizes GL access qualifiers. So far it does three things:
197 if (var->data.access & ACCESS_CAN_REORDER)
200 unsigned access = var->data.access;
204 if (!(access & ACCESS_NON_WRITEABLE)) {
206 access |= ACCESS_NON_WRITEABLE;
207 else if ((access & ACCESS_RESTRICT) && !_mesa_set_search(state->vars_written, var))
208 access |= ACCESS_NON_WRITEABLE;
211 if (state->infer_non_readable && !(access & ACCESS_NON_READABLE)) {
213 access |= ACCESS_NON_READABLE;
214 else if ((access & ACCESS_RESTRICT) && !_mesa_set_search(state->vars_read, var))
215 access |= ACCESS_NON_READABLE;
218 bool changed = var->data.access != access;
219 var->data.access = access;
226 enum gl_access_qualifier access = nir_intrinsic_access(instr);
228 bool is_memory_readonly = access & ACCESS_NON_WRITEABLE;
229 bool is_memory_writeonly = access & ACCESS_NON_READABLE;
237 is_memory_readonly |= var && (var->data.access & ACCESS_NON_WRITEABLE);
238 is_memory_writeonly |= var && (var->data.access & ACCESS_NON_READABLE);
250 access |= ACCESS_NON_WRITEABLE;
252 access |= ACCESS_NON_READABLE;
253 if (!(access & ACCESS_VOLATILE) && is_memory_readonly)
254 access |= ACCESS_CAN_REORDER;
256 bool progress = nir_intrinsic_access(instr) != access;
257 nir_intrinsic_set_access(instr, access);