mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
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:
parent
3ee3024804
commit
0425b34b79
1 changed files with 10 additions and 15 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue