radv: Always lower indirect derefs after nir_lower_global_vars_to_local.
Otherwise new local variables can cause hangs on vega. CC: <mesa-stable@lists.freedesktop.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105098 Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
@@ -1525,9 +1525,16 @@ radv_link_shaders(struct radv_pipeline *pipeline, nir_shader **shaders)
|
||||
ordered_shaders[i - 1]);
|
||||
|
||||
if (progress) {
|
||||
nir_lower_global_vars_to_local(ordered_shaders[i]);
|
||||
if (nir_lower_global_vars_to_local(ordered_shaders[i])) {
|
||||
radv_lower_indirect_derefs(ordered_shaders[i],
|
||||
pipeline->device->physical_device);
|
||||
}
|
||||
radv_optimize_nir(ordered_shaders[i]);
|
||||
nir_lower_global_vars_to_local(ordered_shaders[i - 1]);
|
||||
|
||||
if (nir_lower_global_vars_to_local(ordered_shaders[i - 1])) {
|
||||
radv_lower_indirect_derefs(ordered_shaders[i - 1],
|
||||
pipeline->device->physical_device);
|
||||
}
|
||||
radv_optimize_nir(ordered_shaders[i - 1]);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user