var->data.how_declared = nir_var_declared_normally;
if ((mode == nir_var_shader_in &&
- shader->info.stage != MESA_SHADER_VERTEX) ||
+ shader->info.stage != MESA_SHADER_VERTEX &&
+ shader->info.stage != MESA_SHADER_KERNEL) ||
(mode == nir_var_shader_out &&
shader->info.stage != MESA_SHADER_FRAGMENT))
var->data.interpolation = INTERP_MODE_SMOOTH;
nir_cf_node_get_function(&instr->block->cf_node);
def->index = impl->ssa_alloc++;
+
+ impl->valid_metadata &= ~nir_metadata_live_ssa_defs;
}
return true;
nir_cf_node_get_function(&instr->block->cf_node);
def->index = impl->ssa_alloc++;
+
+ impl->valid_metadata &= ~nir_metadata_live_ssa_defs;
} else {
def->index = UINT_MAX;
}
{
unsigned index = 0;
+ impl->valid_metadata &= ~nir_metadata_live_ssa_defs;
+
nir_foreach_block_unstructured(block, impl) {
nir_foreach_instr(instr, block)
nir_foreach_ssa_def(instr, index_ssa_def_cb, &index);
bool bindless)
{
enum gl_access_qualifier access = nir_intrinsic_access(intrin);
+ nir_alu_type type = nir_type_invalid;
+ if (nir_intrinsic_infos[intrin->intrinsic].index_map[NIR_INTRINSIC_TYPE])
+ type = nir_intrinsic_type(intrin);
switch (intrin->intrinsic) {
#define CASE(op) \
nir_intrinsic_set_image_array(intrin, glsl_sampler_type_is_array(deref->type));
nir_intrinsic_set_access(intrin, access | var->data.access);
nir_intrinsic_set_format(intrin, var->data.image.format);
+ if (nir_intrinsic_infos[intrin->intrinsic].index_map[NIR_INTRINSIC_TYPE])
+ nir_intrinsic_set_type(intrin, type);
nir_instr_rewrite_src(&intrin->instr, &intrin->src[0],
nir_src_for_ssa(src));