From 0425b34b79097384b578dc0999484f4199ff5516 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Tue, 2 Apr 2019 17:41:07 -0700 Subject: [PATCH] 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 --- .../compiler/brw_nir_lower_cs_intrinsics.c | 25 ++++++++----------- 1 file 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; } -- 2.30.2