intel/fs: Don't loop when lowering CS intrinsics

This was needed when certain intrinsics were lowered to other ones
that were defined by the same pass.  After 060817b2 "intel,nir: Move
gl_LocalInvocationID lowering to nir_lower_system_values" we don't
need the loop anymore.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
Caio Marcelo de Oliveira Filho 2019-04-02 17:41:07 -07:00
parent 3ee3024804
commit 0425b34b79

View file

@ -193,11 +193,10 @@ brw_nir_lower_cs_intrinsics(nir_shader *nir,
{
assert(nir->info.stage == MESA_SHADER_COMPUTE);
bool progress = false;
struct lower_intrinsics_state state;
memset(&state, 0, sizeof(state));
state.nir = nir;
state.dispatch_width = dispatch_width;
struct lower_intrinsics_state state = {
.nir = nir,
.dispatch_width = dispatch_width,
};
assert(!nir->info.cs.local_size_variable);
state.local_workgroup_size = nir->info.cs.local_size[0] *
@ -212,16 +211,12 @@ brw_nir_lower_cs_intrinsics(nir_shader *nir,
assert(state.local_workgroup_size % 4 == 0);
}
do {
state.progress = false;
nir_foreach_function(function, nir) {
if (function->impl) {
state.impl = function->impl;
lower_cs_intrinsics_convert_impl(&state);
}
nir_foreach_function(function, nir) {
if (function->impl) {
state.impl = function->impl;
lower_cs_intrinsics_convert_impl(&state);
}
progress |= state.progress;
} while (state.progress);
}
return progress;
return state.progress;
}