}
static void
-optimize_nir(struct nir_shader *s)
+optimize_nir(struct nir_shader *s, struct zink_shader *zs)
{
bool progress;
do {
}
nir_fixup_deref_modes(nir);
NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_shader_temp, NULL);
- optimize_nir(nir);
+ optimize_nir(nir, NULL);
return true;
}
var->data.mode = nir_var_shader_temp;
nir_fixup_deref_modes(producer);
NIR_PASS_V(producer, nir_remove_dead_variables, nir_var_shader_temp, NULL);
- optimize_nir(producer);
+ optimize_nir(producer, NULL);
}
}
if (producer->info.stage == MESA_SHADER_TESS_CTRL) {
return;
nir_fixup_deref_modes(nir);
NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_shader_temp, NULL);
- optimize_nir(nir);
+ optimize_nir(nir, NULL);
}
/* all types that hit this function contain something that is 64bit */
need_optimize = true;
}
if (inlined_uniforms) {
- optimize_nir(nir);
+ optimize_nir(nir, zs);
/* This must be done again. */
NIR_PASS_V(nir, nir_io_add_const_offset_to_base, nir_var_shader_in |
if (impl->ssa_alloc > ZINK_ALWAYS_INLINE_LIMIT)
zs->can_inline = false;
} else if (need_optimize)
- optimize_nir(nir);
+ optimize_nir(nir, zs);
prune_io(nir);
NIR_PASS_V(nir, nir_convert_from_ssa, true);
}
nir_fixup_deref_modes(shader);
NIR_PASS_V(shader, nir_remove_dead_variables, nir_var_shader_temp, NULL);
- optimize_nir(shader);
+ optimize_nir(shader, NULL);
struct glsl_struct_field *fields = rzalloc_array(shader, struct glsl_struct_field, 2);
fields[0].name = ralloc_strdup(shader, "base");
return false;
nir_fixup_deref_modes(shader);
NIR_PASS_V(shader, nir_remove_dead_variables, nir_var_shader_temp, NULL);
- optimize_nir(shader);
+ optimize_nir(shader, NULL);
return true;
}
NIR_PASS_V(nir, nir_lower_subgroups, &subgroup_options);
}
- optimize_nir(nir);
+ optimize_nir(nir, NULL);
NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_function_temp, NULL);
NIR_PASS_V(nir, nir_lower_discard_if);
NIR_PASS_V(nir, nir_lower_fragcolor,
if (has_bindless_io)
NIR_PASS_V(nir, lower_bindless_io);
- optimize_nir(nir);
+ optimize_nir(nir, NULL);
prune_io(nir);
scan_nir(screen, nir, ret);
NIR_PASS_V(nir, nir_lower_tex, &tex_opts);
if (nir->info.stage == MESA_SHADER_GEOMETRY)
NIR_PASS_V(nir, nir_lower_gs_intrinsics, nir_lower_gs_intrinsics_per_stream);
- optimize_nir(nir);
+ optimize_nir(nir, NULL);
nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
if (screen->driconf.inline_uniforms)
nir_find_inlinable_uniforms(nir);
nir_validate_shader(nir, "created");
NIR_PASS_V(nir, nir_lower_regs_to_ssa);
- optimize_nir(nir);
+ optimize_nir(nir, NULL);
NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_function_temp, NULL);
NIR_PASS_V(nir, nir_convert_from_ssa, true);