mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 11:30:21 +01:00
nir/divergence: require nir_metadata_block_index
This allows for fast checks whether some value is defined inside a loop. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30787>
This commit is contained in:
parent
8d1abd4996
commit
c0b3d7a916
1 changed files with 7 additions and 0 deletions
|
|
@ -1267,6 +1267,8 @@ visit_cf_list(struct exec_list *list, struct divergence_state *state)
|
|||
void
|
||||
nir_divergence_analysis_impl(nir_function_impl *impl, nir_divergence_options options)
|
||||
{
|
||||
nir_metadata_require(impl, nir_metadata_block_index);
|
||||
|
||||
struct divergence_state state = {
|
||||
.stage = impl->function->shader->info.stage,
|
||||
.shader = impl->function->shader,
|
||||
|
|
@ -1278,6 +1280,8 @@ nir_divergence_analysis_impl(nir_function_impl *impl, nir_divergence_options opt
|
|||
};
|
||||
|
||||
visit_cf_list(&impl->body, &state);
|
||||
|
||||
nir_metadata_preserve(impl, nir_metadata_all);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1305,7 +1309,10 @@ nir_vertex_divergence_analysis(nir_shader *shader)
|
|||
.first_visit = true,
|
||||
};
|
||||
|
||||
nir_metadata_require(nir_shader_get_entrypoint(shader),
|
||||
nir_metadata_block_index);
|
||||
visit_cf_list(&nir_shader_get_entrypoint(shader)->body, &state);
|
||||
nir_metadata_preserve(nir_shader_get_entrypoint(shader), nir_metadata_all);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue