summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/compiler/nir/nir_opt_access.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/nir/nir_opt_access.c b/src/compiler/nir/nir_opt_access.c
index 73733ff8b3d..89b44c2234b 100644
--- a/src/compiler/nir/nir_opt_access.c
+++ b/src/compiler/nir/nir_opt_access.c
@@ -197,7 +197,7 @@ process_variable(struct access_state *state, nir_variable *var)
access |= ACCESS_NON_WRITEABLE;
}
- if (!(access & ACCESS_NON_READABLE)) {
+ if (state->infer_non_readable && !(access & ACCESS_NON_READABLE)) {
if (is_buffer ? !state->buffers_read : !state->images_read)
access |= ACCESS_NON_READABLE;
else if ((access & ACCESS_RESTRICT) && !_mesa_set_search(state->vars_read, var))
@@ -230,7 +230,7 @@ update_access(struct access_state *state, nir_intrinsic_instr *instr, bool is_im
if (is_memory_readonly)
access |= ACCESS_NON_WRITEABLE;
- if (is_memory_writeonly)
+ if (state->infer_non_readable && is_memory_writeonly)
access |= ACCESS_NON_READABLE;
if (!(access & ACCESS_VOLATILE) && is_memory_readonly)
access |= ACCESS_CAN_REORDER;