nir: Assert that nir_lower_io is only called with allowed modes
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Connor Abbott <cwabbott0@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5418>
This commit is contained in:

committed by
Marge Bot

parent
b019b22c7a
commit
be96b069ad
@@ -626,16 +626,10 @@ nir_lower_io_block(nir_block *block,
|
||||
nir_deref_instr *deref = nir_src_as_deref(intrin->src[0]);
|
||||
|
||||
nir_variable_mode mode = deref->mode;
|
||||
|
||||
assert(util_is_power_of_two_nonzero(mode));
|
||||
if ((state->modes & mode) == 0)
|
||||
continue;
|
||||
|
||||
if (mode != nir_var_shader_in &&
|
||||
mode != nir_var_shader_out &&
|
||||
mode != nir_var_mem_shared &&
|
||||
mode != nir_var_uniform)
|
||||
continue;
|
||||
|
||||
nir_variable *var = nir_deref_instr_get_variable(deref);
|
||||
|
||||
b->cursor = nir_before_instr(instr);
|
||||
@@ -723,6 +717,11 @@ nir_lower_io_impl(nir_function_impl *impl,
|
||||
state.type_size = type_size;
|
||||
state.options = options;
|
||||
|
||||
ASSERTED nir_variable_mode supported_modes =
|
||||
nir_var_shader_in | nir_var_shader_out |
|
||||
nir_var_mem_shared | nir_var_uniform;
|
||||
assert(!(modes & ~supported_modes));
|
||||
|
||||
nir_foreach_block(block, impl) {
|
||||
progress |= nir_lower_io_block(block, &state);
|
||||
}
|
||||
|
Reference in New Issue
Block a user