summaryrefslogtreecommitdiffstats
path: root/src/intel
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2019-04-02 17:41:07 -0700
committerCaio Marcelo de Oliveira Filho <[email protected]>2019-04-08 19:29:33 -0700
commit0425b34b79097384b578dc0999484f4199ff5516 (patch)
tree166d00dd77ce70e081b9f32f1e76d422ee937cf6 /src/intel
parent3ee3024804f9817dfa4f9ee4fa3d6b963a84c9cb (diff)
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 <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r--src/intel/compiler/brw_nir_lower_cs_intrinsics.c25
1 files changed, 10 insertions, 15 deletions
diff --git a/src/intel/compiler/brw_nir_lower_cs_intrinsics.c b/src/intel/compiler/brw_nir_lower_cs_intrinsics.c
index 6180e6a706b..434ad005281 100644
--- a/src/intel/compiler/brw_nir_lower_cs_intrinsics.c
+++ b/src/intel/compiler/brw_nir_lower_cs_intrinsics.c
@@ -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;
}