nir: add nir_var_vec_indexable_modes
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7511>
This commit is contained in:
@@ -141,6 +141,10 @@ typedef enum {
|
||||
nir_var_read_only_modes = nir_var_shader_in | nir_var_uniform |
|
||||
nir_var_system_value | nir_var_mem_constant |
|
||||
nir_var_mem_ubo,
|
||||
/** Modes where vector derefs can be indexed as arrays */
|
||||
nir_var_vec_indexable_modes = nir_var_mem_ubo | nir_var_mem_ssbo |
|
||||
nir_var_mem_shared | nir_var_mem_global |
|
||||
nir_var_mem_push_const,
|
||||
nir_num_variable_modes = 14,
|
||||
nir_var_all = (1 << nir_num_variable_modes) - 1,
|
||||
} nir_variable_mode;
|
||||
|
@@ -471,9 +471,7 @@ validate_deref_instr(nir_deref_instr *instr, validate_state *state)
|
||||
|
||||
case nir_deref_type_array:
|
||||
case nir_deref_type_array_wildcard:
|
||||
if (instr->modes & (nir_var_mem_ubo | nir_var_mem_ssbo |
|
||||
nir_var_mem_shared | nir_var_mem_global |
|
||||
nir_var_mem_push_const)) {
|
||||
if (instr->modes & nir_var_vec_indexable_modes) {
|
||||
/* Shared variables and UBO/SSBOs have a bit more relaxed rules
|
||||
* because we need to be able to handle array derefs on vectors.
|
||||
* Fortunately, nir_lower_io handles these just fine.
|
||||
|
Reference in New Issue
Block a user