summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRhys Perry <pendingchaos02@gmail.com>2020-12-09 22:45:35 +0000
committerMarge Bot <eric+marge@anholt.net>2020-12-11 12:19:23 +0000
commitb54851281354f6feba5921c94b84aa11133e6274 (patch)
tree7a02688dd8e791cb9875601dc0768eb992df4cec
parentfe669ff4a023a98865b5ab6538613e3ae4c4eae9 (diff)
nir/opt_access: don't ignore infer_non_readable
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Connor Abbott <cwabbott0@gmail.com> Fixes: d7d0b4445ae ("nir/opt_access: infer writeonly") Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3959 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8018>
-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;