nir/opt_access: don't check restrict in can_reorder()
ACCESS_NON_WRITEABLE means that the memory is read-only, not the variable, so we don't have to check for aliasing. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Connor Abbott <cwabbott0@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6483>
This commit is contained in:
parent
2448d13e0f
commit
939df4e364
|
@ -27,9 +27,8 @@
|
|||
*
|
||||
* - Infer readonly when it's missing.
|
||||
* - Infer ACCESS_CAN_REORDER when the following are true:
|
||||
* - Either there are no writes, or ACCESS_NON_WRITEABLE and ACCESS_RESTRICT
|
||||
* are both set. In either case there are no writes to the underlying
|
||||
* memory.
|
||||
* - Either there are no writes, or ACCESS_NON_WRITEABLE is set. In either
|
||||
* case there are no writes to the underlying memory.
|
||||
* - ACCESS_VOLATILE is not set.
|
||||
*
|
||||
* If these conditions are true, then image and buffer reads may be treated as
|
||||
|
@ -160,11 +159,8 @@ can_reorder(struct access_state *state, enum gl_access_qualifier access,
|
|||
state->images_written;
|
||||
|
||||
/* Can we guarantee that the underlying memory is never written? */
|
||||
if (!is_any_written ||
|
||||
((access & ACCESS_NON_WRITEABLE) &&
|
||||
(access & ACCESS_RESTRICT))) {
|
||||
if (!is_any_written || (access & ACCESS_NON_WRITEABLE))
|
||||
return !(access & ACCESS_VOLATILE);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue