radv_lower_viewport_to_zero(nir_shader *nir)
{
nir_function_impl *impl = nir_shader_get_entrypoint(nir);
+ bool progress = false;
nir_builder b;
nir_builder_init(&b, impl);
b.cursor = nir_before_instr(instr);
nir_ssa_def_rewrite_uses(&intr->dest.ssa, nir_imm_zero(&b, 1, 32));
- return true;
+ progress = true;
+ break;
}
+ if (progress)
+ break;
}
- return false;
+ if (progress)
+ nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(impl, nir_metadata_all);
+
+ return progress;
}
static nir_variable *
progress = true;
if (nir->info.stage == MESA_SHADER_VERTEX)
- return progress;
+ break;
}
+ if (nir->info.stage == MESA_SHADER_VERTEX && progress)
+ break;
}
+ if (progress)
+ nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(impl, nir_metadata_all);
+
return progress;
}
}
}
+ if (progress)
+ nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(impl, nir_metadata_all);
+
return progress;
}
}
}
+ if (progress)
+ nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(impl, nir_metadata_all);
+
return progress;
}
}
}
+ if (progress)
+ nir_metadata_preserve(entry, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(entry, nir_metadata_all);
+
return progress;
}
progress = true;
if (nir->info.stage == MESA_SHADER_VERTEX)
- return progress;
+ break;
}
+ if (nir->info.stage == MESA_SHADER_VERTEX && progress)
+ break;
}
+ if (progress)
+ nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(impl, nir_metadata_all);
+
return progress;
}
progress = true;
if (nir->info.stage == MESA_SHADER_VERTEX)
- return progress;
+ break;
}
}
+ if (nir->info.stage == MESA_SHADER_VERTEX && progress)
+ break;
}
+ if (progress)
+ nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(impl, nir_metadata_all);
+
return progress;
}
}
}
+ if (progress)
+ nir_metadata_preserve(impl, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(impl, nir_metadata_all);
+
return progress;
}
}
}
+ if (progress)
+ nir_metadata_preserve(entry, nir_metadata_block_index | nir_metadata_dominance);
+ else
+ nir_metadata_preserve(entry, nir_metadata_all);
+
return progress;
}