validate_assert(state, instr->mode == nir_var_mem_ubo ||
instr->mode == nir_var_mem_ssbo ||
instr->mode == nir_var_mem_shared ||
- instr->mode == nir_var_mem_global);
+ instr->mode == nir_var_mem_global ||
+ instr->mode == nir_var_mem_constant);
}
}
}
break;
}
+ case nir_intrinsic_load_ubo_vec4: {
+ int bit_size = nir_dest_bit_size(instr->dest);
+ validate_assert(state, bit_size >= 8);
+ validate_assert(state, (nir_intrinsic_component(instr) +
+ instr->num_components) * (bit_size / 8) <= 16);
+ break;
+ }
+
case nir_intrinsic_load_ubo:
case nir_intrinsic_load_ssbo:
case nir_intrinsic_load_shared:
case nir_intrinsic_load_global:
+ case nir_intrinsic_load_global_constant:
case nir_intrinsic_load_scratch:
case nir_intrinsic_load_constant:
/* These memory load operations must have alignments */
nir_var_mem_ubo |
nir_var_system_value |
nir_var_mem_ssbo |
- nir_var_mem_shared;
+ nir_var_mem_shared |
+ nir_var_mem_constant;
exec_list_validate(&shader->variables);
nir_foreach_variable_in_shader(var, shader)